简介

软件开发人员在开发应用程序时,常需要操作Word和PDF文档。在本文中,我将从免费Spire.Office里添加Spire.doc.dll和Spire.PDF.dll来演示如何使用邮件合并创建漂亮的Word文档,然后将这个Word文档另存为PDF文件格式,并为生成的PDF文件添加可见的数字签名来达到保护文档的目的。

步骤:创建word模板---邮件合并文本和图片---word保存为PDF--添加PDF数字签名

创建Word邮件合并模板

首先我们需要制作一个主文档,主文档是指在Word的邮件合并功能中,所含文本和图片对合并文档的每个版本都相同的文档,例如,信息库中的姓名,电话等。

//创建Document实例
Document document = new Document();
//添加节
Section section = document.AddSection();
//添加段落
Paragraph paragraph = section.AddParagraph();//添加文本
paragraph.AppendText("\n姓名:");
//添加合并域“Name”
paragraph.AppendField("Name",FieldType.FieldMergeField);//添加文本
paragraph.AppendText("\n电话:");
//添加合并域"Phone"
paragraph.AppendField("Phone",FieldType.FieldMergeField);//添加文本
paragraph.AppendText("\n部门:");
//添加合并域"Department"
paragraph.AppendField("Department",FieldType.FieldMergeField);//添加文本
paragraph.AppendText("\n照片:");
//添加合并域"Image:Photo"
paragraph.AppendField("Image:Photo",FieldType.FieldMergeField);//保存模板文档
document.SaveToFile("Template.docx",FileFormat.Docx2013);


合并文本和图片到模板。

Word的邮件合并是一个非常强大的功能,常被应用于制作大量相似的文档。通过使用它,开发人员可以用定制的数据填充Word

static void Main(string[] args)
{//载入模板文档 Document doc = new Document();
doc.LoadFromFile(@"Template.docx");var textFieldNames = new string[] { "Name", "Phone", "Department" };var textFieldValues = new string[] { "李 梓", "15581678920", "技 术 支 持" };var imageFieldNames = new string[] { "Photo" };var imageFieldValues = new string[] { "image.jpg" };//合并文本到模板
doc.MailMerge.Execute(textFieldNames, textFieldValues);//创建合并图片自定义事件
doc.MailMerge.MergeImageField += new MergeImageFieldEventHandler(MailMerge_MergeImageField);//合并图片到模板doc.MailMerge.Execute(imageFieldNames, imageFieldValues);//保存文档doc.SaveToFile("result.docx", FileFormat.Docx);
}//载入图片
static void MailMerge_MergeImageField(object sender, MergeImageFieldEventArgs field){string filePath = field.FieldValue as string;if (!string.IsNullOrEmpty(filePath)){field.Image = Image.FromFile(filePath);}}

将word文档保存为PDF

转换功能作为Spire.Doc产品的一个主要亮点,Spire.Doc支持将 Word文件转换为PDF、HTML、XPS、SVG、Text、图片和XML文件(Word文件的格式可以是.doc,也可以是.docx)。这里我们将直接调用SaveToFile方法将word另存为PDF.

static void Main(string[] args)
{//载入Sample文档 Document doc = new Document();doc.LoadFromFile("result.docx");doc.SaveToFile("WordtoPDF.PDF", FileFormat.PDF);}


添加PDF数字签名

为防止文件被恶意篡改,并确保PDF文档的权威性,这里我们需要对PDF进行数字签名。当我们用PFX加密证书添加签名时,请务必保证PFX证书的有效性。

//初始化一个PdfDocument实例
PdfDocument doc = new PdfDocument();//加载PDF文档
doc.LoadFromFile("WordtoPDF.PDF");//根据证书实例化一个PdfCertificate对象
PdfCertificate cert = new PdfCertificate("Demo.pfx", "eiceblue");//在指定页面添加数字签名
PdfSignature signature = new PdfSignature(doc, doc.Pages[0], cert, "Signature1");//设置签名的位置和大小
signature.Bounds = new RectangleF(new PointF(200, 300), new SizeF(180, 90));//设置签名内容
signature.IsTag = true;
signature.DigitalSignerLable = "Digitally signed by: ";
signature.DigitalSigner = "Gary";
signature.LocationInfoLabel = "Location:";
signature.LocationInfo = "CN";
signature.ReasonLabel = "Reason: ";
signature.Reason = "Ensure authenticity";
signature.DateLabel = "Date: ";
signature.Date = DateTime.Now;
signature.ContactInfoLabel = "Contact Number: ";
signature.ContactInfo = "028-81705109";//设置被签名文档的编辑权限
signature.DocumentPermissions = PdfCertificationFlags.AllowFormFill | PdfCertificationFlags.ForbidChanges;//保存文档
doc.SaveToFile("数字签名.pdf");

至止,该项目已全部完成。在这个项目中,我们先用Spire.Doc从头开始创建了一个新的word文档模板,并通过Mailmerge 功能,合并了文本和图片到文档并将生成的word文档转换给PDF格式。为了保证数据安全性,我又调用Spire.PDF为PDF结果文档添加了可视化数字签名。全程使用纯代码操作,无需安装任何第三方插件及Microsoftword或AdobeAcrobat.

C# 创建 Word 并另存为PDF格式相关推荐

  1. Office word 2007不能另存为pdf格式的解决方法

    Office word 2007不能另存为pdf格式的解决方法 参考文章: (1)Office word 2007不能另存为pdf格式的解决方法 (2)https://www.cnblogs.com/ ...

  2. golang 将word转为pdf_如何将word转化为pdf格式

    在我们日常工作中经常会遇到文件格式转换的问题,尤其是word与PDF之间的转换运用得特别多.当然,在常见的文件格式转换中,较为麻烦的也是PDF与Word这两者之间的转换了.今天这里,主要介绍word转 ...

  3. 如何把word转成pdf格式以及如何从指定页开始设置页码技巧

    Word文档我相信没几个人不认识,但word的使用技巧数不胜数,你确定你全部都掌握了吗?今天为大家分享两个Word使用过程中常见的难题!打包拿走,不谢! ·首先是Word转换成PDF格式的技巧 如果你 ...

  4. 【简报】创建线框结构的PDF格式草图表

    为什么80%的码农都做不了架构师?>>>    日期:2012-9-2  来源:GBin1.com 任何设计师开始设计网站时要做的第一件事就是创建线框图,使用它们可以帮助你创建大家可 ...

  5. 前格式 直接将转换为当_如何将word转化为PDF格式?1分钟学会文档转换

    如何将word转化为PDF格式?不知道大家在学习和工作中有没有遇到过文件转换的问题,基本上所有的人在使用了各种数据文档后,都有为了文档格式转换而发愁的,因此这里重点给大家介绍一些文件转换的工具和方法, ...

  6. Solidwork另存为PDF格式文件不全

    为了方便查看,需要将工程图另存为pdf格式文件发给其他人,但是导出的pdf文件不全.因为在工程图中添加了注解等文字,导致导出的pdf文件内容不全.在导出的过程中就已经报错了:缺失Arial Unico ...

  7. WORD 最快捷文献引用方式,避免尾注标注的弊端;在word的docx文档中标注在原文中是上标,但是另存为pdf格式后失效。

    流程 1.建立列表,注意格式设置成[i]: 2.目录栏-引用-交叉引用: 3.标注改上标: 使用替换功能: 查找: [^#]或[^#^#],这里[^#^#]代表搜索形如[12]的2个数字型 替换:(格 ...

  8. WPS文字2012利用自带功能一键将Word转成PDF格式

    Word怎么转PDF?Word转PDF转换器有没有?Word转PDF是不是很麻烦的事情?以上这些问题对于使用老版Office2003来说,不借助其他工具实现将Word转PDF,是一件不可能完成的事情, ...

  9. 如何将Word转成PDF格式?这三种方法总有一个适合你

    如何把Word文档转换成PDF文件格式呢?大家在传输文件的时候,相信很多小伙伴都喜欢不使用PDF文件格式,因为它非常的稳定,在浏览文件的时候格式不会乱,但我们都是先做好Word文档,然后再把它转成PD ...

  10. 教你如何免费Word转成PDF格式

    我们常见的文档格式之一当属Word不可,它不仅操作简单,而且特别方便,但最大的缺点就是不够稳定,容易丢失内容以及不同版本兼容性不同,因此我们经常会将Word转换成PDF,下面给大家介绍一种很不错的Wo ...

最新文章

  1. java之泛型_java之泛型
  2. iOS开发 - OC - PCH文件使用
  3. java高并发(十一)同步容器
  4. 手写实现Spring(IOC、DI),SpringMVC基础功能
  5. 【大会】网络性能、安全与成本之困
  6. c语言标准图形库,C语言图形库函数.docx
  7. 什么时候用到mysql存储过程_什么时候用到存储过程
  8. 【百度地图API】如何批量转换为百度经纬度
  9. python冒泡排序时间复杂度_Python算法中的时间复杂度问题
  10. JavaEE 启示录
  11. 声网Agora 孙雨润:下一代实时传输体系结构的升级与应用
  12. mapbox gl文字标注算法基本介绍
  13. 线束对插件厂商网站汇总
  14. 13、TORCH.OPTIM
  15. 求两个数的最小公倍数c语言程序,用C语言求两个数的最大公约数和最小公倍数...
  16. (翻译)按钮的对比色引导用户操作的方式
  17. 数据结构教程(第5版)李春葆 课后习题及答案(PDF版)
  18. js打折 (批量计算9折 8折 7折
  19. 什么时候跳槽,为什么离职,你想好了么?
  20. 鸿蒙系统如何开启快捷方式,鸿蒙系统功能介绍-华为鸿蒙系统功能详细介绍 - 系统家园...

热门文章

  1. ShadowGun Shaders
  2. sublime php code sniffer,Sublime插件CodeSniffer配置
  3. 北邮 网络安全 期末复习 知识点总结之防火墙
  4. 从winpe安装系统
  5. 微信小程序如何在手机预览调试
  6. DFT compiler极简示例2(使用autofix)
  7. 开源项目推荐:office办公软件,绘图软件
  8. 计算机i网络管理员证书四级,软考网络管理员试题练习(4)
  9. HCSE交换知识重点
  10. 超级计算机预测未来,超级计算机预测未来