C# 创造邮件合并模板并联合文本、图片

对此Word中的邮件合并成效,用户可以将邮件合并后的结果文档保存并打印,也得以经过邮件的花样发送,在无数场子需要采纳到此意义。这对于编程人士,我们也得以在C#言语环境中通过代码的款式来落实。遵照需要先创制邮件合并模板后,可统一文本和图纸,在上边的主意中,需要拔取到零部件Free
Spire.Doc for
.NET
。创造模板前,需先安装该器件,注意添加引用该零件dll文件到控制台应用程序中,同时添加命名空间。

一、创制邮件合并模板

先是步:添加命名空间

using System;
using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
using Spire.Doc.Fields;

第二步:紧要代码段

//创建一个Document类对象,并添加Section
Document document = new Document();
Section section = document.AddSection();

//添加段落到Section,并向段落添加文字,设置文字颜色、字体粗细
Paragraph paragraph = section.AddParagraph();
TextRange tr = paragraph.AppendText("人 物 基 本 信 息");
tr.CharacterFormat.TextColor = Color.YellowGreen;
tr.CharacterFormat.Bold = true;

//添加文本,并添加合并域“Image:Portrait”
paragraph.AppendText("\n人 物 肖 像 : ");
paragraph.AppendField("Image:Portrait", FieldType.FieldMergeField);

//添加文本,并添加合并域“Name”
paragraph.AppendText("\n姓 名 : ");
paragraph.AppendField("Name", FieldType.FieldMergeField);

//添加文本,并添加合并域“Nation”
paragraph.AppendText("\n民 族 :");
paragraph.AppendField("Nation", FieldType.FieldMergeField);

//添加文本,并添加合并域“Nationality”
paragraph.AppendText("\n国 籍 : ");
paragraph.AppendField("Nationality", FieldType.FieldMergeField);

//添加文本,并添加合并域“Graduated From”
paragraph.AppendText("\n院 校 : ");
paragraph.AppendField("Graduated From", FieldType.FieldMergeField);

//保存并打开文档
document.SaveToFile("模板.docx", FileFormat.Docx2013);
System.Diagnostics.Process.Start("模板.docx");

完成上述步骤后,调试运行程序,生成文书(可在类型文件下bin>Debug中查看)

如下图:

图片 1

二:合并文本、图片

在形成模板创立之后,可添加文(加文)本和图表,如下:

第一步:添加命名空间

using System;
using Spire.Doc;
using System.Drawing;
using Spire.Doc.Reporting;

第二步:重要代码段

static void Main(string[] args)
        {
            //实例化一个Document类,并加载文档模板
            Document doc = new Document();
            doc.LoadFromFile(@"C:\Users\Administrator\Desktop\模板.docx");
            var textFieldNames = new string[] { "Name", "Nation", "Nationality", "Graduated From"};
            var textFieldValues = new string[] { "乔 治•华 盛 顿 (George Washington)", "美 利 坚 民 族", "美 国", "威 廉 与 玛 丽 学 院 (William and Mary)"};
            var imageFieldNames = new string[] { "Portrait" };
            var imageFieldValues = new string[] { @"C:\Users\Administrator\Desktop\images\华盛顿.jpg" };

            //合并文本到模板
            doc.MailMerge.Execute(textFieldNames, textFieldValues);

            //创建合并图片自定义事件
            doc.MailMerge.MergeImageField += new MergeImageFieldEventHandler(MailMerge_MergeImageField);

            //合并图片到模板
            doc.MailMerge.Execute(imageFieldNames, imageFieldValues);

            //保存并打开文档
            doc.SaveToFile("result.docx", FileFormat.Docx);
            System.Diagnostics.Process.Start("result.docx");
        }
        //添加自定义事件载入图片
        static void MailMerge_MergeImageField(object sender, MergeImageFieldEventArgs field)
        {
            string filePath = field.FieldValue as string;
            if (!string.IsNullOrEmpty(filePath))
            {
                field.Image = Image.FromFile(filePath);
            }
        }

运转程序,生成文书,如下图:

 图片 2

如上全体内容为本文创立邮件合并模板并统一文本和图表的形式讲述,方法中拔取到的零部件Spire.Doc
for
.NET在拍卖Word文档方面具备很好的声援功效,感兴趣的话可以出手试试。要是本文对你有着援救,欢迎转载(转载请申明出处)。

相关文章