数字签名是一种验证文档真实性的数学技术。对于文档,数字签名由带有私钥和公钥的证书表示。作为 Java 开发人员,您可以轻松地以编程方式使用数字证书对文档进行签名。本文将重点介绍如何使用 Java 对带有数字签名的文档进行电子签名。
本文讨论/涵盖了以下主题:
用于签署文档的 Java API
我将使用 GroupDocs.Signature for Java API 使用数字证书对文档进行签名。它可以帮助您开发 Java 应用程序以对 支持的格式 的数字文档进行电子签名。它还允许使用图像、二维码、条形码、元数据、文本和图章类型电子签名对图像和文档进行签名。
下载和配置
您可以下载 API 的 JAR 或在基于 Maven 的 Java 应用程序中添加以下 pom.xml 配置来尝试下面提到的代码示例。
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-signature</artifactId>
<version>20.9</version>
</dependency>
使用 Java 使用数字签名签署 PDF 文档
您可以按照以下提到的简单步骤使用数字签名对 PDF 文档进行电子签名:
- 创建 Signature 类的实例
- 提供 PDF 文档的路径
- 创建 DigitalSignOptions 类的实例
- 提供证书文件路径
- 设置图片文件路径
- 设置所需的符号选项,例如位置(上、左等)
- 然后调用Sign方法对文档进行签名
以下代码示例显示了如何使用 Java 使用证书对 PDF 文档进行签名。
Signature signature = new Signature("sample.pdf");
// 定义数字签名选项
DigitalSignOptions options = new DigitalSignOptions("Signature.pfx");
options.setImageFilePath("signature.jpg");
options.setLeft(100);
options.setTop(200);
options.setPageNumber(1);
// 签署文件归档
signature.sign("output.pdf", options);
Signature 类是控制文档签名过程的主要类。此类提供各种方法来签名、验证、更新和搜索签名。
DigitalSignOptions 类提供了各种方法来设置和获取表示数字签名的签名选项。
使用 Java 使用数字签名对 Word 文档进行签名
您可以按照以下提到的简单步骤使用数字签名对您的 Word 文档进行电子签名:
- 创建 Signature 类的实例
- 提供Word文件的路径
- 创建 DigitalSignOptions 类的实例
- 提供证书文件路径
- 设置图片文件路径
- 设置所需的符号选项,例如位置(上、左等)
- 然后调用Sign方法对文档进行签名
以下代码示例显示了如何使用 Java 使用证书对 DOCX 文件进行签名。
Signature signature = new Signature("sample.docx");
// 定义数字签名选项
DigitalSignOptions options = new DigitalSignOptions("Signature.pfx");
options.setImageFilePath("signature.jpg");
options.setPassword("1234567890");
options.setReason("Approved");
options.setContact("John Smith");
options.setLocation("New York");
options.setAllPages(true);
options.setWidth(160);
options.setHeight(80);
options.setTop(400);
options.setLeft(100);
// 签署文件归档
signature.sign("output.docx", options);
获得免费许可证
您可以通过请求 免费的临时许可证 来试用该 API,而不受评估限制。
结论
在本文中,您学习了如何使用 Java 使用数字签名对文档进行电子签名。您可以使用 文档 了解有关 Java API 的 GroupDocs.Signature 的更多信息。如有任何歧义,请随时在 论坛 上与我们联系。