C# 给PDF文件添加空白签名域/签名框

C# 给PDF文件添加空白签名域/签名框

通常我们只是直接给PDF文件添加签名而很少添加签名域,但是直接添加签名有一个不好的地方,特别是当PDF文件需要多次签名的时候,每个人签名都需要打开Adobe软件,点击多个选项,设置签名大小及位置进行签字费时又费力。一次性添加多个签名域,不同的人点击相应的签名域即可进行签名,这样可以节约很多时间也很方便。

在这里向大家分享一款.NET PDF组件Spire.PDF,它既支持在PDF文档中添加数字签名也支持添加签名域,并且不需要安装Adobe软件。接下来我们就使用它来给PDF文件的指定页面及位置添加多个空白签名域。

下图是添加签名域后的结果文档:


可以看到我已经成功向该PDF文件中添加了三个空白的签名域,点击签名域即出现以上对话框,选择对话框中的选项就可以直接在PDF中签名了。


步骤参考:

步骤1:创建一个PDF文档并添加一个页面(当然你也可以加载现有的PDF文档)。

PdfDocument pdfdoc = new PdfDocument();
PdfPageBase page =pdfdoc.Pages.Add();

步骤2:使用PdfSignatureField类来添加三个签名域到PDF文档的指定页面,这里传递了两个参数:页面和签名域的名字。

PdfSignatureField signaturefield1 = new PdfSignatureField(page,"Signature1");
PdfSignatureField signaturefield2 = new PdfSignatureField(page,"Signature2");
PdfSignatureField signaturefield3 = new PdfSignatureField(page,"Signature3");

步骤3:设置签名域的边框线宽、格式、颜色,高亮模式及在页面的位置、大小等属性。

signaturefield1.BorderWidth = 1.0f;
signaturefield1.BorderStyle = PdfBorderStyle.Solid;
signaturefield1.BorderColor = new PdfRGBColor(System.Drawing.Color.Black);
signaturefield1.HighlightMode = PdfHighlightMode.Outline;
signaturefield1.Bounds = newRectangleF(100, 100, 100, 30);
 
signaturefield2.BorderWidth = 1.0f;
signaturefield2.BorderStyle = PdfBorderStyle.Solid;
signaturefield2.BorderColor = new PdfRGBColor(System.Drawing.Color.Black);
signaturefield2.HighlightMode = PdfHighlightMode.Outline;
signaturefield2.Bounds = newRectangleF(100, 140, 100, 30);
 
signaturefield3.BorderWidth = 1.0f;
signaturefield3.BorderStyle = PdfBorderStyle.Solid;
signaturefield3.BorderColor = new PdfRGBColor(System.Drawing.Color.Black);
signaturefield3.HighlightMode = PdfHighlightMode.Outline;
signaturefield3.Bounds = newRectangleF(100, 180, 100, 30);

步骤4:将签名域添加到PDF文档的根域里,如省略该步骤,则签名域只是添加到了页面里。

pdfdoc.Form.Fields.Add(signaturefield1);
pdfdoc.Form.Fields.Add(signaturefield2);
pdfdoc.Form.Fields.Add(signaturefield3);

步骤5:保存文档。

pdfdoc.SaveToFile("AddSignField.pdf",FileFormat.PDF);

完整代码如下:

using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Fields;
using Spire.Pdf.Graphics;
 
namespace Add_Signature_Filed_in_PDF
{
    class Program
    {
        static void Main(string[] args)
        {
            PdfDocument pdfdoc = newPdfDocument();
            PdfPageBase page = pdfdoc.Pages.Add();
 
            PdfSignatureField signaturefield1 = new PdfSignatureField(page,"Signature1");
            PdfSignatureField signaturefield2 = new PdfSignatureField(page,"Signature2");
            PdfSignatureField signaturefield3 = new PdfSignatureField(page,"Signature3");
 
           signaturefield1.BorderWidth = 1.0f;
           signaturefield1.BorderStyle = PdfBorderStyle.Solid;
           signaturefield1.BorderColor = new PdfRGBColor(System.Drawing.Color.Black);
            signaturefield1.HighlightMode= PdfHighlightMode.Outline;
           signaturefield1.Bounds = new RectangleF(100, 100, 100, 30);
 
           signaturefield2.BorderWidth = 1.0f;
           signaturefield2.BorderStyle = PdfBorderStyle.Solid;
           signaturefield2.BorderColor = new PdfRGBColor(System.Drawing.Color.Black);
           signaturefield2.HighlightMode = PdfHighlightMode.Outline;
           signaturefield2.Bounds = new RectangleF(100, 140, 100, 30);
 
           signaturefield3.BorderWidth = 1.0f;
           signaturefield3.BorderStyle = PdfBorderStyle.Solid;
           signaturefield3.BorderColor = new PdfRGBColor(System.Drawing.Color.Black);
           signaturefield3.HighlightMode = PdfHighlightMode.Outline;
            signaturefield3.Bounds= new RectangleF(100,180, 100, 30);
 
           pdfdoc.Form.Fields.Add(signaturefield1);
           pdfdoc.Form.Fields.Add(signaturefield2);
           pdfdoc.Form.Fields.Add(signaturefield3);
 
           pdfdoc.SaveToFile("AddSignField.pdf",FileFormat.PDF);
           System.Diagnostics.Process.Start("AddSignField.pdf");
        }
    }
}

感谢您的阅读,希望该文能对您有一定的帮助。

 

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页