在Winform程序中使用Spire.Pdf實現頁面添加印章處理


在一些場合,我們往往需要使用印章來給每頁文檔加蓋一個印章,以表示該文檔經過某個部門的認證的,常規的做法就是打印文檔后蓋章,如果需要電子檔再行掃描一下。這樣的處理,如果文檔很多,且僅僅需要電子文檔的就很麻煩了,需要打印再蓋章再掃描,而且電子文檔往往有失真的問題。本篇隨筆介紹如何在在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);
            }
        }

最后頁面的效果如下所示,在每頁的指定位置,都蓋章我們的印章了。

  以上處理,就是在Winform程序中使用Spire.Pdf實現頁面添加印章處理,可以減輕我們實際工作的繁瑣操作。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM