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

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

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值