使用IRONPDF FOR JAVA

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

更新 2024年八月25日
分享:

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

IronPDF - Java PDF 库

IronPDF Java PDF 库概述是一个Java库,允许开发人员从头开始创建新的PDF文档将 HTML 字符串转换为 PDF, 将 HTML 文件转换为 PDF, Word 至 PDF 转换,或 URL。 它有助于轻松处理 PDF 文件,添加或删除其中的内容。 它提供安全和数字签名选项我们还将为 PDF 文档提供数字签名。

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

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

先决条件

要对 PDF 文档进行数字签名,需要具备以下前提条件:

  • 任何 Java IDE(NetBeans, Eclipse, IntelliJ)安装 - 本文将使用 IntelliJ. 您可以从以下网站单独下载 Java 开发工具包Oracle Java SE 下载.
  • 用于自动化的 Maven Java 项目** - 这将有助于下载和管理 Java 程序中的依赖关系。 您可以从以下网址下载 MavenApache Maven 下载页面.
  • IronPDF 库的下载和安装 - 要下载和安装 IronPDF,请包含其 Maven 依赖工件。 您可以在 pom.xml 文件的依赖关系标记中添加以下代码片段:

    <dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>2023.1.10</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 文档。 本文将创建一个新的 PDF 文档,使用renderHtmlAsPdf方法PDFDocument 类. 代码如下

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

PDF 文档已创建,但尚未保存。 因此,下一步就是创建数字签名,然后将其添加到该 PDF 文档中,最后保存。

创建数字签名

您必须使用 Adobe Reader 创建数字签名证书,并在 Java 代码中使用该证书对包含这些详细信息的 PDF 文档进行数字签名。 您可以查看如何在 Adobe Reader 中创建数字签名.

打开 Adobe Reader 并单击 编辑 > 首选项。 然后点击 "签名",了解更多关于身份和可信证书的信息。

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

项目偏好

添加以下签名字段,使 .pfx 或 .p12 文件成为 doc 文件。

如何在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 文档之前的签名,然后可以使用SignPdfWithSignature方法以签名文件作为参数。 代码如下

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 for Java 在 Java 中处理 PDF 所需的必要组件。 然后使用 HTML 字符串创建了一个简单的 PDF 文档。 从 Adobe Reader 中创建了一个证书文件,用于签署原始 PDF 文档。 IronPdf 提供了签名SignatureManager该类可帮助用户添加证书并使用签名字段签署 PDF。

IronPdf 可帮助开发人员轻松快捷地执行 PDF 相关任务。 它能提供精确的结果和像素完美的 PDF。 对于 IronPDF for Java 这样一种用途广泛、使用广泛的编程语言来说,由于其功能也很全面,几乎支持所有 PDF 操作,因此非常适合处理 PDF 文档。 此外,它还建立在已经取得成功的 .NET 功能基础之上。

IronPDF 还使用专为 Java 设计的快速 IronPDFEngine 提供不同文件格式的轻松转换。 您可以使用 IronPDF 库来提取或添加文本, 加载和提取图像, 为 PDF 添加页眉和页脚注释将图表和图形渲染为 PDF,与合作PDF表单此外,还需要翻译 .NET、Java、Python 或 Node js 等更多内容。

有关如何使用 IronPDF 的详细信息,您可以从Java PDF 代码示例页码

IronPDF 可免费用于个人开发,并提供无水印免费试用版生成 PDF 文档。 它可以被授权用于商业用途,其用户可以从以下链接获取更多关于授权的信息详细许可信息页面.

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

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

免费 Maven 下载 查看许可证 >