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();
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 = 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);
pdfdoc.Form.Fields.Add(signaturefield1);
pdfdoc.Form.Fields.Add(signaturefield2);
pdfdoc.Form.Fields.Add(signaturefield3);
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");
}
}
}