掌握 Java 中的 PDF 数字签名:使用 GroupDocs.Signature 进行文本、复选框和数字字段

介绍

需要对 PDF 进行数字签名,但想要的不仅仅是图片或数字证书?无论您是批准合同、签署文件还是添加结构化同意,GroupDocs.Signature for Java 都能为您提供解决方案。该库支持将文本表单字段签名、复选框签名和数字签名无缝集成到您的 PDF 中。

在本教程中,我们将探索如何使用 GroupDocs.Signature for Java 来签名 PDF 文档,这些文档包含各种表单字段类型——文本、复选框和数字。您将学习如何在 Java 应用程序中高效地实现这些功能。

您将学到什么:

  • 如何为 Java 设置 GroupDocs.Signature
  • 实现文本表单字段签名
  • 添加复选框表单字段签名
  • 集成数字表单字段签名
  • 优化性能并与其他系统集成

在深入实施之前,让我们先了解一些先决条件。

先决条件

要学习本教程,您需要:

  • Java 开发工具包 (JDK):确保您的系统上安装了 JDK 8 或更高版本。
  • 集成开发环境:任何 Java IDE(如 IntelliJ IDEA、Eclipse 或 NetBeans)都可以正常工作。
  • GroupDocs.Signature Java 库:通过 Maven、Gradle 或者直接下载获取。

环境设置要求

确保您的开发环境设置了必要的依赖项和库,以有效使用 GroupDocs.Signature 的功能。

知识前提

对 Java 编程的基本了解和熟悉以编程方式处理 PDF 将有助于学习本教程。

为 Java 设置 GroupDocs.Signature

要开始在项目中使用 GroupDocs.Signature for Java,请将该库添加到依赖项中。操作方法如下:

Maven:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-signature</artifactId>
    <version>23.12</version>
</dependency>

Gradle:

implementation 'com.groupdocs:groupdocs-signature:23.12'

直接下载

您也可以从下载最新版本 GroupDocs.Signature Java 版本.

许可证获取步骤

  • 免费试用:从免费试用开始探索其功能。
  • 临时执照:获得临时许可证以无限制地测试全部功能。
  • 购买:如果它适合您的长期需求,请考虑购买许可证。

将 GroupDocs.Signature 添加到项目后,初始化 Signature 对象如下:

import com.groupdocs.signature.Signature;

String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
Signature signature = new Signature(filePath);

实施指南

让我们将实现分解为具体功能——文本表单字段、复选框表单字段和数字表单字段签名。

文本表单字段签名

概述

使用文本表单字段签名 PDF 允许您添加可编辑字段供用户输入。这对于需要用户输入数据的文档非常有用。

设置文本表单字段签名:

  1. 实例化签名对象
    String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
    Signature signature = new Signature(filePath);
    
  2. 创建 TextFieldSignature
    import com.groupdocs.signature.domain.signatures.formfield.TextFormFieldSignature;
    
    TextFormFieldSignature textSignature = new TextFormFieldSignature("tbData1", "Value-1");
    
  3. 配置 FormFieldSignOptions
    import com.groupdocs.signature.options.sign.FormFieldSignOptions;
    import com.groupdocs.signature.domain.Padding;
    import com.groupdocs.signature.domain.enums.HorizontalAlignment;
    import com.groupdocs.signature.domain.enums.VerticalAlignment;
    
    FormFieldSignOptions optionsTextFF = new FormFieldSignOptions(textSignature);
    optionsTextFF.setHorizontalAlignment(HorizontalAlignment.Left);
    optionsTextFF.setVerticalAlignment(VerticalAlignment.Top);
    optionsTextFF.setMargin(new Padding(10, 20, 0, 0));
    optionsTextFF.setHeight(10);
    optionsTextFF.setWidth(100);
    
  4. 签署文件
    import java.util.ArrayList;
    import java.util.List;
    
    List<com.groupdocs.signature.options.sign.SignOptions> listOptions = new ArrayList<>();
    listOptions.add(optionsTextFF);
    
    SignResult signResult = signature.sign("YOUR_OUTPUT_DIRECTORY/SignTextFormFieldSignature_" + Paths.get(filePath).getFileName().toString(), listOptions);
    

复选框表单字段签名

概述

复选框表单字段非常适合需要用户选择或同意的文档。此功能简化了交互式复选框的添加。

设置复选框表单字段签名:

  1. 实例化签名对象
    String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
    Signature signature = new Signature(filePath);
    
  2. 创建 CheckboxFormFieldSignature
    import com.groupdocs.signature.domain.signatures.formfield.CheckboxFormFieldSignature;
    
    CheckboxFormFieldSignature chbSignature = new CheckboxFormFieldSignature("chbData1", true);
    
  3. 配置 FormFieldSignOptions
    FormFieldSignOptions optionsTextCHB = new FormFieldSignOptions(chbSignature);
    optionsTextCHB.setHorizontalAlignment(HorizontalAlignment.Center);
    optionsTextCHB.setVerticalAlignment(VerticalAlignment.Top);
    optionsTextCHB.setMargin(new Padding(0, 0, 0, 0));
    optionsTextCHB.setHeight(10);
    optionsTextCHB.setWidth(100);
    
  4. 签署文件
    List<com.groupdocs.signature.options.sign.SignOptions> listOptions = new ArrayList<>();
    listOptions.add(optionsTextCHB);
    
    SignResult signResult = signature.sign("YOUR_OUTPUT_DIRECTORY/SignCheckboxFormFieldSignature_" + Paths.get(filePath).getFileName().toString(), listOptions);
    

数字表单字段签名

概述

数字表单字段允许使用数字证书进行安全签名,确保文档的真实性和完整性。

设置数字表单字段签名:

  1. 实例化签名对象
    String filePath = "YOUR_DOCUMENT_DIRECTORY/sample.pdf";
    Signature signature = new Signature(filePath);
    
  2. 创建 DigitalFormFieldSignature
    import com.groupdocs.signature.domain.signatures.formfield.DigitalFormFieldSignature;
    
    DigitalFormFieldSignature digitalSignature = new DigitalFormFieldSignature("dgData1");
    
  3. 配置 FormFieldSignOptions
    FormFieldSignOptions optionsTextDIG = new FormFieldSignOptions(digitalSignature);
    optionsTextDIG.setHorizontalAlignment(HorizontalAlignment.Right);
    optionsTextDIG.setVerticalAlignment(VerticalAlignment.Center);
    optionsTextDIG.setMargin(new Padding(0, 50, 0, 0));
    optionsTextDIG.setHeight(50);
    optionsTextDIG.setWidth(50);
    
  4. 签署文件
    List<com.groupdocs.signature.options.sign.SignOptions> listOptions = new ArrayList<>();
    listOptions.add(optionsTextDIG);
    
    SignResult signResult = signature.sign("YOUR_OUTPUT_DIRECTORY/SignDigitalFormFieldSignature_" + Paths.get(filePath).getFileName().toString(), listOptions);
    

实际应用

GroupDocs.Signature for Java 功能多样,可应用于多种实际场景:

  • 合同管理:使用文本字段、复选框和数字签名自动签署合同。
  • 审批工作流程:在您的组织内实施数字审批系统。
  • 客户协议:通过安全的数字签名简化客户协议。

本指南内容全面,确保您能够自信地使用 GroupDocs.Signature 在 Java 应用程序中实现数字签名。如需进一步探索,您可以考虑将这些功能集成到更大型的文档管理系统或自动化工作流程中。