华域联盟 .Net asp.net 按指定模板导出word,pdf实例代码

asp.net 按指定模板导出word,pdf实例代码

复制代码 代码如下:

/// <summary>

        /// 导出word文件

        /// </summary>

        /// <param name="templateFile">模板路径</param>

        /// <param name="fileNameWord">导出文件名称</param>

        /// <param name="fileNamePdf">pdf文件名称</param>

        /// <param name="bookmarks">模板内书签集合</param>

        /// <param name="invoiceline">发票条目列表</param>

        public static void GenerateWord(string templateFile, string fileNameWord, string fileNamePdf, Dictionary<string, string> bookmarks, List<InvoiceLineView> invoiceline)

        {

            Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();

            File.Copy(templateFile, fileNameWord, true);

            Microsoft.Office.Interop.Word.Document doc = new Microsoft.Office.Interop.Word.Document();

            object Obj_FileName = fileNameWord;

            object Visible = false;

            object ReadOnly = false;

            object missing = System.Reflection.Missing.Value;

            doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing, ref missing, ref missing, ref missing,

                ref missing, ref missing, ref missing, ref missing, ref Visible, ref missing, ref missing, ref missing, ref missing);

            doc.Activate();

            foreach (string bookmarkName in bookmarks.Keys)

            {

                object BookMarkName = bookmarkName;//获得书签名                   
                Range range = doc.Bookmarks.get_Item(ref BookMarkName).Range;//表格插入位置
                range.Text = bookmarks[bookmarkName];
            }        
          object IsSave = true;
            object FileName = fileNamePdf;
            object FileFormat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
            object LockComments = false;
            object AddToRecentFiles = true;
            object ReadOnlyRecommended = false;
            object EmbedTrueTypeFonts = false;
            object SaveNativePictureFormat = true;
            object SaveFormsData = false;
            object SaveAsAOCELetter = false;
            object Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingSimplifiedChineseGB18030;
            object InsertLineBreaks = false;
            object AllowSubstitutions = false;
            object LineEnding = Microsoft.Office.Interop.Word.WdLineEndingType.wdCRLF;
            object AddBiDiMarks = false;
            doc.SaveAs(ref FileName, ref FileFormat, ref LockComments,
                    ref missing, ref AddToRecentFiles, ref missing,
                    ref ReadOnlyRecommended, ref EmbedTrueTypeFonts,
                    ref SaveNativePictureFormat, ref SaveFormsData,
                    ref SaveAsAOCELetter, ref Encoding, ref InsertLineBreaks,
                    ref AllowSubstitutions, ref LineEnding, ref AddBiDiMarks);
            doc.Close(ref IsSave, ref missing, ref missing);
        }

调用

复制代码 代码如下:

Dictionary<string, string> bookmarks = new Dictionary<string, string>();

bookmarks.Add("ContractDueDateTime", invoice.InvoiceTime.AddDays(invoice.ContractDueDate).ToString("D"));

bookmarks.Add("CustomContactEmail", invoice.CustomContactEmail);

bookmarks.Add("CustomContactName", invoice.CustomContactName);

bookmarks.Add("ContractDueDate", invoice.ContractDueDate.ToString());

bookmarks.Add("CustomContactTel", invoice.CustomContactTel);

bookmarks.Add("CustomAddress", invoice.CustomAddress);

bookmarks.Add("InvoiceTime", invoice.InvoiceTime.ToString());

bookmarks.Add("InvoiceID", invoice.InvoiceID);

bookmarks.Add("CustomName", invoice.CustomName);

bookmarks.Add("CustomName2", invoice.CustomName);

bookmarks.Add("total", invoice.TotalPrice.ToString("C"));

bookmarks.Add("total1", invoice.TotalPrice.ToString("C"));

bookmarks.Add("totalTax", invoice.TotalTax.ToString("C"));

bookmarks.Add("totalPrice", (invoice.TotalPrice + invoice.TotalTax).ToString("C"));

bookmarks.Add("totalPrice1", (invoice.TotalPrice + invoice.TotalTax).ToString("C"));

bookmarks.Add("totalPrice2", (invoice.TotalPrice + invoice.TotalTax).ToString("C"));

bookmarks.Add("totalPrice3", (invoice.TotalPrice + invoice.TotalTax).ToString("C"));

bookmarks.Add("totalPrice4", (invoice.TotalPrice + invoice.TotalTax).ToString("C"));

Utility.GenerateWord(templateFile, fileNameWord, fileNamePdf, bookmarks, invoiceline);

新建一个word,在需要替换的位置插入书签,使用以上方法即可将书签处替换为指定内容,并且另存为pdf

您可能感兴趣的文章:

  • 如何使用Rotativa在ASP.NET Core MVC中创建PDF详解
  • ASP.NET Core中快速构建PDF文档的步骤分享
  • ASP.NET Core 5中如何生成PDF文档

本文由 华域联盟 原创撰写:华域联盟 » asp.net 按指定模板导出word,pdf实例代码

转载请保留出处和原文链接:https://www.cnhackhy.com/51926.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部