使用 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 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看