十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章运用简单易懂的例子给大家介绍如何在Winform程序中使用Spire.Pdf实现页面添加印章功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
成都创新互联是一家集网站建设,遂川企业网站建设,遂川品牌网站建设,网站定制,遂川网站建设报价,网络营销,网络优化,遂川网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。1、在PDF增加印章处理
首先我们来了解下,用Adobe Acrobat Reader 进行文档的印章处理下,看看如何实现的,后面再用软件实现自动的添加。
印章的来源,我们需要一个图片格式的印章。那么我们可以通过盖章到白纸上,然后拍照进行抠图,把图片弄成PNG的透明图片,也可以使用在线的印章生成工具生成图片,然后在进行适当的加工。
在做图章之前,我们先用Photoshop处理好图片,并保存图片为PDF格式的文件。
首先用Adobe Acrobat Reader打开一个PDF文档,然后找到对也给你的工具选项卡,选择图章功能,如下图所示。
然后会切换到文档的自定义图章功能上,如下所示。
然后选择创建自定义图章,导入刚才做好的PDF格式图片印章即可。
印章创建好后,就可以在文档中调用印章模板进行添加了,也就是调用印章调板处理。
拖动到文档的任意位置即可实现电子印章的添加了,添加后的文档界面效果如下所示。
2、在Winform程序中使用Spire.Pdf实现页面添加印章处理
以上是通过手工操作,在Adobe Acrobat Reader上添加印章,并给PDF文档指定位置添加印章的过程,这样的处理,已经可以减少电子档的扫描失真问题,并可以减少很多繁琐的工作。但是如果我们每次都要给很多文档页面添加这样的印章处理,也是很繁琐的事情,那么我们这里就可以编写一个程序,用程序是给每个页面指定位置盖章即可。
我们知道Spire.Pdf是对PDF操作非常不错的一个组件,我们可以利用它来实现我们对这些PDF创建印章和盖章的处理过程。
我们在Winform开发框架模块的综合案例里面,添加一个Demo页面,然后实现这个功能展示一下。
整个代码其实不复杂,如下代码所示。
private void btnAddImageSign_Click(object sender, EventArgs e) { string signPdf = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Examples/PdfDemo/TestSign2.pdf"); string signImage = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, "Examples/PdfDemo/印章.png"); PdfDocument doc = new PdfDocument(); doc.LoadFromFile(signPdf); //每页都添加印章 foreach (PdfPageBase page in doc.Pages) { PdfRubberStampAnnotation loStamp = new PdfRubberStampAnnotation(new RectangleF(new PointF(400, 600), new SizeF(120, 120))); PdfAppearance loApprearance = new PdfAppearance(loStamp); PdfImage image = PdfImage.FromFile(signImage); PdfTemplate template = new PdfTemplate(160, 160); template.Graphics.DrawImage(image, 0, 0); loApprearance.Normal = template; loStamp.Appearance = loApprearance; page.AnnotationsWidget.Add(loStamp); } //保存文档 var fileSave = FileDialogHelper.SavePdf("ImageStamp.pdf", System.AppDomain.CurrentDomain.BaseDirectory); if(!string.IsNullOrEmpty(fileSave)) { doc.SaveToFile(fileSave); Process.Start(fileSave); } }