使用 C# 使用表单字段签名签署 PDF

表单字段是用于从用户那里收集信息的各种类型的数据字段。作为 C# 开发人员,您可以轻松创建 PDF 文档以供用户以电子方式填写和签名。这有助于收集客户反馈、合作伙伴的同意等。在本文中,您将学习如何使用 C# 对带有表单字段签名的 PDF 文档进行电子签名

本文讨论/涵盖了以下主题:

用于签署 PDF 文档的 C# API

我将使用 GroupDocs.Signature for .NET API 对启用表单字段签名的 PDF 文档进行签名。 API 允许您将数字签名添加到 支持的文档格式 并在您的 .NET 应用程序中实现流行的电子签名类型。它还使您能够使用简单和高级的搜索选项在文档上找到所需的签名。

使用 C# 使用表单字段签名签署 PDF 文档

您可以使用以下类型的表单域签名以编程方式对 PDF 文档进行电子签名:

使用文本表单字段签名为 PDF 文档签名

您可以按照以下提到的简单步骤使用文本表单字段签名签署 PDF 文档:

  • 创建 Signature 类的实例
  • 提供输入 PDF 文档的路径
  • 创建 TextFormFieldSignature 类的实例
  • 使用 TextFormFieldSignature 对象创建 FormFieldSignOptions 类的实例
  • 设置所需的符号选项,例如边距、高度、宽度等。
  • 使用 FormFieldSignOptions 和输出文件路径调用 Sign() 方法

以下代码示例显示如何使用 C# 对带有文本表单字段签名的 PDF 文档进行电子签名

// 创建一个签名实例
Signature signature = new Signature(@"C:\Files\sample.pdf");

// 实例化文本表单字段签名
TextFormFieldSignature textSignature = new TextFormFieldSignature("textBoxData1", "Enter Your Name");
// 基于文本表单字段签名实例化选项
FormFieldSignOptions optionsTextFF = new FormFieldSignOptions(textSignature);
optionsTextFF.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextFF.VerticalAlignment = VerticalAlignment.Top;
optionsTextFF.Margin = new Padding(20, 0, 170, 0);
optionsTextFF.Height = 50;
optionsTextFF.Width = 200;

// 签署文件归档
signature.Sign(@"C:\Files\TextFormFieldSignature.pdf", optionsTextFF);

Signature 类是控制文档签名过程的主要类。它提供了多种方法来签名、搜索、删除或验证文档中的签名。此类的 Sign() 方法用于使用已定义的 SignOptions 对文档进行签名。

TextFormFieldSignature 类为 PDF 文档提供文本输入表单字段签名属性。

使用单选按钮表单字段签名为 PDF 文档签名

您可以按照前面提到的步骤使用单选按钮表单字段签名对 PDF 文档进行签名。但是,您需要创建 RadioButtonFormFieldSignature 类的实例而不是 TextFormFieldSignature

以下代码示例显示如何使用 C# 对带有单选按钮表单字段签名的 PDF 文档进行电子签名

// 创建一个签名实例
Signature signature = new Signature(@"C:\Files\sample.pdf");

// 实例化单选按钮表单字段签名
List<string> radioOptions = new List<string>() { "Male", "Female" };
RadioButtonFormFieldSignature rbSignature = new RadioButtonFormFieldSignature("radioData1", radioOptions, "Male");
// 基于文本表单字段签名实例化选项
FormFieldSignOptions optionsTextRB = new FormFieldSignOptions(rbSignature);
optionsTextRB.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextRB.VerticalAlignment = VerticalAlignment.Top;
optionsTextRB.Margin = new Padding(20, 0, 170, 0);
optionsTextRB.Height = 50;
optionsTextRB.Width = 200;

// 签署文件归档
signature.Sign(@"C:\Files\RadioButtonFormFieldSignature.pdf", optionsTextRB);

RadioButtonFormFieldSignature 类为 PDF 文档提供单选按钮输入表单字段签名属性。

使用组合框表单字段签名为 PDF 文档签名

您可以按照前面提到的步骤使用 Combobox 表单字段签名对 PDF 文档进行签名。但是,您需要创建 ComboboxFormFieldSignature 而不是 TextFormFieldSignature 的实例。

以下代码示例显示如何使用 C# 对带有 Combobox 表单字段签名的 PDF 文档进行电子签名

// 创建一个签名实例
Signature signature = new Signature(@"C:\Files\sample.pdf");

// 实例化组合框表单字段签名
List<string> items = new List<string>() { "Australia", "United Kingdom", "United States" };
ComboboxFormFieldSignature cmbSignature = new ComboboxFormFieldSignature("combo1", items, "Australia");
// 基于文本表单字段签名实例化选项
FormFieldSignOptions optionsTextCMB = new FormFieldSignOptions(cmbSignature);
optionsTextCMB.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextCMB.VerticalAlignment = VerticalAlignment.Top;
optionsTextCMB.Margin = new Padding(20, 0, 238, 0);
optionsTextCMB.Height = 20;
optionsTextCMB.Width = 200;

// 签署文件归档
signature.Sign(@"C:\Files\ComboboxFormFieldSignature.pdf", optionsTextCMB);

ComboboxFormFieldSignature 类为 PDF 文档提供组合框输入表单字段签名属性。

使用复选框表单字段签名为 PDF 文档签名

您可以按照前面提到的相同步骤使用复选框表单字段签名来签署 PDF 文档。但是,您需要创建 CheckboxFormFieldSignature 而不是 TextFormFieldSignature 的实例。

以下代码示例显示如何使用复选框表单字段签名对 PDF 文档进行电子签名

// 创建一个签名实例
Signature signature = new Signature(@"C:\Files\sample.pdf");

List<SignOptions> listOptions = new List<SignOptions>();

// 实例化文本表单字段签名
CheckboxFormFieldSignature chbSignature = new CheckboxFormFieldSignature("chbData1", true);
// 基于文本表单字段签名实例化选项
FormFieldSignOptions optionsTextCHB = new FormFieldSignOptions(chbSignature);
optionsTextCHB.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextCHB.VerticalAlignment = VerticalAlignment.Top;
optionsTextCHB.Margin = new Padding(20, 0, 270, 0);
optionsTextCHB.Height = 20;
optionsTextCHB.Width = 20;

// 签署文件归档
signature.Sign(@"C:\Files\CheckboxFormFieldSignature.pdf", optionsTextCHB);

CheckboxFormFieldSignature 类为 PDF 文档提供复选框输入表单字段签名属性。

使用数字表单字段签名为 PDF 文档签名

您可以按照前面提到的相同步骤,使用数字表单字段签名签署 PDF 文档。但是,您需要创建 DigitalFormFieldSignature 而不是 TextFormFieldSignature 的实例。

以下代码示例显示如何使用数字表单字段签名对 PDF 文档进行电子签名

// 创建一个签名实例
Signature signature = new Signature(@"C:\Files\sample.pdf");

// 实例化文本表单字段签名
DigitalFormFieldSignature digSignature = new DigitalFormFieldSignature("dgData1");
// 基于文本表单字段签名实例化选项
FormFieldSignOptions optionsTextDIG = new FormFieldSignOptions(digSignature);
optionsTextDIG.HorizontalAlignment = HorizontalAlignment.Center;
optionsTextDIG.VerticalAlignment = VerticalAlignment.Top;
optionsTextDIG.Margin = new Padding(20, 0, 300, 0);
optionsTextDIG.Height = 50;
optionsTextDIG.Width = 200;
optionsTextDIG.ForeColor = System.Drawing.Color.Yellow;

// 签署文件归档
signature.Sign(@"C:\Files\DigitalFormFieldSignature.pdf", optionsTextDIG);

DigitalFormFieldSignature 类为 PDF 文档提供数字签名输入表单字段属性。用户应能够在此字段中使用自己的数字签名签署文件。

使用 C# 签署具有多个表单字段签名的 PDF 文档

您可以按照以下提到的简单步骤以编程方式使用多个表单域签名对您的 PDF 文档进行电子签名:

  • 创建 Signature 类的实例
  • 提供输入 PDF 文档的路径
  • 定义 SignOptions 的列表
  • 创建 FormFieldSignature 对象
  • 为创建的 FormFieldSignature 对象创建 FormFieldSignOptions 的实例
  • 为每个对象设置所需的符号选项,例如位置(边距、高度、宽度等)
  • FormFieldSignOptions 对象添加到 SignOptions 列表
  • 使用 SignOptions 和输出文件路径调用 Sign() 方法

以下代码示例显示如何使用 C# 对具有多个表单域签名的 PDF 文档进行电子签名

// 创建一个签名实例
Signature signature = new Signature(@"C:\Files\sample.pdf");

List<SignOptions> listOptions = new List<SignOptions>();

// 实例化文本表单字段签名
TextFormFieldSignature textSignature = new TextFormFieldSignature("tbData1", "Enter Your Name");
// 基于文本表单字段签名实例化选项
FormFieldSignOptions optionsTextFF = new FormFieldSignOptions(textSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 138, 0),
    Height = 20,
    Width = 200
};

// 实例化单选按钮表单字段签名
List<string> radioOptions = new List<string>() { "Male", "Female" };
RadioButtonFormFieldSignature rbSignature = new RadioButtonFormFieldSignature("radioData1", radioOptions, "Male");
// 基于文本表单字段签名实例化选项
FormFieldSignOptions optionsTextRB = new FormFieldSignOptions(rbSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 170, 0),
    Height = 50,
    Width = 200,
};

// 实例化组合框表单字段签名
List<string> items = new List<string>() { "Australia", "United Kingdom", "United States" };
ComboboxFormFieldSignature cmbSignature = new ComboboxFormFieldSignature("combo1", items, "Australia");
// 基于文本表单字段签名实例化选项
FormFieldSignOptions optionsTextCMB = new FormFieldSignOptions(cmbSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 238, 0),
    Height = 20,
    Width = 200,
};

// 实例化文本表单字段签名
CheckboxFormFieldSignature chbSignature = new CheckboxFormFieldSignature("chbData1", true);
// 基于文本表单字段签名实例化选项
FormFieldSignOptions optionsTextCHB = new FormFieldSignOptions(chbSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 270, 0),
    Height = 20,
    Width = 20,
};


// 实例化数字表单域签名
DigitalFormFieldSignature digSignature = new DigitalFormFieldSignature("dgData1");
// 基于文本表单字段签名实例化选项
FormFieldSignOptions optionsTextDIG = new FormFieldSignOptions(digSignature)
{
    HorizontalAlignment = HorizontalAlignment.Center,
    VerticalAlignment = VerticalAlignment.Top,
    Margin = new Padding(20, 0, 300, 0),
    Height = 50,
    Width = 200,
};

// 将表单字段添加到签名选项列表
listOptions.Add(optionsTextFF);
listOptions.Add(optionsTextCHB);
listOptions.Add(optionsTextRB);
listOptions.Add(optionsTextCMB);
listOptions.Add(optionsTextDIG);

// 签署文件归档
signature.Sign(@"C:\Files\Signature\sample_output.pdf", listOptions);
使用 C# 签署具有多个表单字段签名的 PDF 文档

使用 C# 签署具有多个表单字段签名的 PDF 文档

Signature 类的 Sign() 方法用于使用 SignOptions 列表对文档进行签名。 SignOptions 类允许设置签名选项,例如外观、签名类型等。

FormFieldSignOptions 类为 PDF 文档提供表单域签名选项。您可以定义表单域选项,例如 HorizontalAlignment、VerticalAlignment、Margin、Height 和 Width。在创建 FormFieldSignOptions 类的实例时,您需要提供 FormFieldSignature 类之一的已定义对象。

获得免费许可证

您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。

结论

在本文中,您学习了如何使用 C# 创建带有表单字段签名的 PDF。您还学习了如何以编程方式对具有各种表单字段签名类型的 PDF 文档进行电子签名。您可以使用 文档 了解有关 .NET API 的 GroupDocs.Signature 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看