16

在Winform程序中使用Spire.Pdf实现页面添加印章处理

 3 years ago
source link: https://www.cnblogs.com/wuhuacong/p/13712543.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

在Winform程序中使用Spire.Pdf实现页面添加印章处理

在一些场合,我们往往需要使用印章来给每页文档加盖一个印章,以表示该文档经过某个部门的认证的,常规的做法就是打印文档后盖章,如果需要电子档再行扫描一下。这样的处理,如果文档很多,且仅仅需要电子文档的就很麻烦了,需要打印再盖章再扫描,而且电子文档往往有失真的问题。本篇随笔介绍如何在在Winform程序中使用Spire.Pdf实现页面添加印章处理,解决这一痛处。

1、在PDF增加印章处理

首先我们来了解下,用Adobe Acrobat Reader 进行文档的印章处理下,看看如何实现的,后面再用软件实现自动的添加。

印章的来源,我们需要一个图片格式的印章。那么我们可以通过盖章到白纸上,然后拍照进行抠图,把图片弄成PNG的透明图片,也可以使用在线的印章生成工具生成图片,然后在进行适当的加工。

在做图章之前,我们先用Photoshop处理好图片,并保存图片为PDF格式的文件。

8867-20200922153235213-1719535887.png

首先用Adobe Acrobat Reader打开一个PDF文档,然后找到对也给你的工具选项卡,选择图章功能,如下图所示。

8867-20200922152722033-1751051128.png

 然后会切换到文档的自定义图章功能上,如下所示。

8867-20200922152901221-1530971962.png

 然后选择创建自定义图章,导入刚才做好的PDF格式图片印章即可。

 

8867-20200922153433734-479383108.png

 印章创建好后,就可以在文档中调用印章模板进行添加了,也就是调用印章调板处理。

8867-20200922155737344-600773650.png

 拖动到文档的任意位置即可实现电子印章的添加了,添加后的文档界面效果如下所示。

8867-20200922153912325-877166555.png

2、在Winform程序中使用Spire.Pdf实现页面添加印章处理

 以上是通过手工操作,在Adobe Acrobat Reader上添加印章,并给PDF文档指定位置添加印章的过程,这样的处理,已经可以减少电子档的扫描失真问题,并可以减少很多繁琐的工作。但是如果我们每次都要给很多文档页面添加这样的印章处理,也是很繁琐的事情,那么我们这里就可以编写一个程序,用程序是给每个页面指定位置盖章即可。

我们知道Spire.Pdf是对PDF操作非常不错的一个组件,我们可以利用它来实现我们对这些PDF创建印章和盖章的处理过程。

我们在Winform开发框架模块的综合案例里面,添加一个Demo页面,然后实现这个功能展示一下。

8867-20200922154539716-599078206.png

 整个代码其实不复杂,如下代码所示。

        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);
            }
        }

最后页面的效果如下所示,在每页的指定位置,都盖章我们的印章了。

8867-20200922155017475-1548520257.png

  以上处理,就是在Winform程序中使用Spire.Pdf实现页面添加印章处理,可以减轻我们实际工作的繁琐操作。

None.gif主要研究技术:代码生成工具、会员管理系统、客户关系管理软件、病人资料管理软件、Visio二次开发、酒店管理系统、仓库管理系统等共享软件开发
专注于Winform开发框架/混合式开发框架Web开发框架Bootstrap开发框架微信门户开发框架的研究及应用
  转载请注明出处:
None.gif撰写人:伍华聪  http://www.iqidi.com 

posted on 2020-09-22 15:51  伍华聪  阅读(1096)  评论(4)  编辑  收藏


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK