使用IRONPDF FOR JAVA

如何在 Java 中向 PDF 添加数字签名

更新 2024年八月25日
分享:

在本文中,您将学习如何在Java程序中使用IronPDF向PDF添加数字签名。

IronPDF - Java PDF 库

IronPDF 是一个Java库,允许开发人员从头开始创建新的PDF文档 HTML 字符串, HTML 文件, Word文件或者URL。它帮助轻松操作PDF,通过添加或删除内容来进行操作。它提供 安全选项 用于 PDF 文档以及数字签名。

IronPDF 不需要任何其他第三方库来执行任何与 PDF 相关的任务。它还提供在不同文件格式之间转换的功能。它提供跨平台支持,专为 Java、Scala 和 Kotlin 设计。

在 Java PDF 文档中添加数字签名的步骤

先决条件

要对PDF文档进行数字签名,需要以下先决条件:

  • 任何Java开发环境 (NetBeans, Eclipse, IntelliJ) 已安装**- 这篇文章将使用 IntelliJ。您可以从以下网址单独下载 Java 开发工具包 甲骨文网站.
  • Maven Java Automation 项目 - 这将帮助您在Java程序中下载和管理依赖项。您可以从 Apache Maven 网站.

  • IronPDF 库下载和安装 - 要下载和安装 IronPDF,请包含其 Maven 依赖工件。您可以在 pom.xml 文件的依赖项标签中添加以下代码片段:
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>your_version_here</version>
</dependency>
XML

另一个所需的依赖项是 Slf4j-simple。它是可选的,可以使用以下在 pom.xml 文件中添加的依赖项:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>2.0.5</version>
    </dependency>
XML

如何在 Java 中向 PDF 添加数字签名,图 1:pom.xml 文件

pom.xml 文件

IronPDF导入Java包

在主文件中需要以下导入。这允许使用IronPDF功能向PDF文档添加数字签名:

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;
import java.io.IOException;
import java.nio.file.Paths;
JAVA

现在,所有必要的工作都已完成,可以使用IronPDF在Java中向PDF文档添加数字签名。

创建 PDF 文件或打开现有 PDF 文件

数字签名 要处理PDF文档,您需要从头创建一个PDF文档或打开现有的PDF文档。本文将使用IronPDF创建一个新的PDF文档以进行PDF签名。 renderHtmlAsPdf 的方法 PDFDocument 类。代码如下:

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
JAVA

该PDF文档已创建但尚未保存。接下来的步骤是创建一个数字签名,然后将其添加到该PDF文档中,最后保存。

创建数字签名

您需要使用Adobe Reader创建一个数字签名证书,该证书将在Java代码中用于使用这些详细信息对PDF文档进行数字签名。您可以查看 如何创建数字签名打开Adobe Reader并点击编辑 > 首选项。然后点击签名,并进一步点击身份和受信任的证书。

如何在Java中向PDF添加数字签名,图2:项目偏好设置

项目偏好

添加以下签名字段以创建 .pfx 或 .p12 文件文档。

如何在Java中向PDF添加数字签名,图3:添加数字ID对话框

添加数字ID对话框

以下代码示例将使用用于Windows的.pfx证书文件和用于Mac的.p12文件及其私钥在Java代码中创建一个新的签名。 (暗号):

Signature signature = new Signature("Iron.pfx", "123456");
JAVA

使用数字签名签署PDF文件

IronPDF 通过使用 SignatureManager 类来帮助添加签名证书。 [获取签名](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#getSignature()) 该方法有助于获取 PDF 文档的前一个签名,然后可以使用 添加新的签名 用签名签署PDF 方法的签名文件作为参数。代码如下:

SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
JAVA

保存PDF签名文件

最后,让我们保存PDF文件;否则,该PDF未使用 保存为 PdfDocument 类的方法。代码很简单,如下:

pdf.saveAs("signed.pdf");
JAVA

在代码成功编译和执行后,输出生成了一个已被数字签名的 PDF。

如何在Java中向PDF添加数字签名,图4:输出的PDF文件

输出 PDF 文件

IronPDF 还提供其他签名选项,它们是可选的,也可以用于数字签名。它包括手写形式、计算机生成的文本图像或数字化图像的签名图像。以下代码示例将帮助您添加一些用于数字签名的附加安全选项:

signature.setSigningContact("support@ironsoftware.com");
signature.setSigningLocation("Chicago, USA");
signature.setSigningReason("To show how to sign a PDF");
BufferedImage signatureImage = ImageIO.read(new File("handwriting.png"));
WritableRaster raster = signatureImage.getRaster();
DataBufferByte data = (DataBufferByte) raster.getDataBuffer();
signature.setSignatureImage(data.getData());
JAVA

完整的代码如下

import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.signature.Signature;
import com.ironsoftware.ironpdf.signature.SignatureManager;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.awt.image.DataBufferByte;
import java.awt.image.WritableRaster;
import java.io.File;
import java.io.IOException;

public static void main(String[] args) throws IOException {

    // Step 1. Create a PDF File Doc
    PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

    // Step 2. Create a Signature.
    Signature signature = new Signature("Iron.pfx", "123456");

    // Step 3. Sign the PDF with the PdfSignature.
    SignatureManager signatureManager = pdf.getSignature();
    signatureManager.SignPdfWithSignature(signature);

    // Step 4. The PDF is not signed until saved to file, stream, or byte array.
    pdf.saveAs("signed.pdf");
}
JAVA

有关数字签名的更多信息,请查阅 PDF 签名代码示例如果你想增加更多的安全性甚至编辑元数据,请查看 示例代码如下.

结论

这篇文章逐步解释了如何使用 IronPDF for Java 向 PDF 文件添加数字签名。

首先,文章介绍了使用 IronPDF 在 Java 中处理 PDF 所需的必要组件。然后使用 HTML 字符串创建了一个简单的 PDF 文件。使用 Adobe Reader 创建了一个证书文件,该文件用于签署原始 PDF 文件。IronPDF 提供了一个 SignatureSignatureManager 类,它帮助用户添加证书并在签名字段中签署PDF。

IronPDF让开发人员能够轻松快捷地执行与PDF相关的任务。它提供像素级精确的PDF结果。对于像Java这样具有多用途且广泛使用的编程语言,IronPDF非常适合处理PDF文档,因为它也多用途,并支持几乎所有的PDF操作。此外,它建立在已经成功的.NET功能之上。

IronPDF还提供从不同文件格式的便捷转换,使用专门为Java设计的快速IronPDFEngine。您可以使用IronPDF库来 提取或添加文本, 加载和提取图像, 添加页眉和页脚注释 渲染图表和图形,与合作 PDF 表格,以及更多内容。

您可以从以下位置获取有关如何使用 IronPDF 的详细信息: 代码示例 页面。

IronPDF 对于个人开发是免费的,并提供 免费试用 生成没有水印的PDF文档。它可以获得商业使用许可,用户可以从此处获取有关许可的更多信息 详细的许可页面.

< 前一页
Java PDF转换器(代码示例教程)
下一步 >
如何在Java中读取PDF文件

准备开始了吗? 版本: 2024.9 刚刚发布

免费 Maven 下载 查看许可证 >