在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
在本文中,您将学习如何在Java程序中使用IronPDF向PDF添加数字签名。
IronPDF 是一个Java库,允许开发人员从头开始创建新的PDF文档 HTML 字符串, HTML 文件, Word文件或者URL。它帮助轻松操作PDF,通过添加或删除内容来进行操作。它提供 安全选项 用于 PDF 文档以及数字签名。
IronPDF 不需要任何其他第三方库来执行任何与 PDF 相关的任务。它还提供在不同文件格式之间转换的功能。它提供跨平台支持,专为 Java、Scala 和 Kotlin 设计。
要对PDF文档进行数字签名,需要以下先决条件:
pom.xml
文件的依赖项标签中添加以下代码片段:<dependency>
<groupId>com.ironsoftware</groupId>
<artifactId>ironpdf</artifactId>
<version>your_version_here</version>
</dependency>
另一个所需的依赖项是 Slf4j-simple。它是可选的,可以使用以下在 pom.xml
文件中添加的依赖项:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>2.0.5</version>
</dependency>
pom.xml 文件
在主文件中需要以下导入。这允许使用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;
现在,所有必要的工作都已完成,可以使用IronPDF在Java中向PDF文档添加数字签名。
至 数字签名 要处理PDF文档,您需要从头创建一个PDF文档或打开现有的PDF文档。本文将使用IronPDF创建一个新的PDF文档以进行PDF签名。 renderHtmlAsPdf
的方法 PDFDocument 类。代码如下:
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");
该PDF文档已创建但尚未保存。接下来的步骤是创建一个数字签名,然后将其添加到该PDF文档中,最后保存。
您需要使用Adobe Reader创建一个数字签名证书,该证书将在Java代码中用于使用这些详细信息对PDF文档进行数字签名。您可以查看 如何创建数字签名打开Adobe Reader并点击编辑 > 首选项。然后点击签名,并进一步点击身份和受信任的证书。
项目偏好
添加以下签名字段以创建 .pfx 或 .p12 文件文档。
添加数字ID对话框
以下代码示例将使用用于Windows的.pfx证书文件和用于Mac的.p12文件及其私钥在Java代码中创建一个新的签名。 (暗号):
Signature signature = new Signature("Iron.pfx", "123456");
IronPDF 通过使用 SignatureManager
类来帮助添加签名证书。 [获取签名
](/java/object-reference/api/com/ironsoftware/ironpdf/PdfDocument.html#getSignature()) 该方法有助于获取 PDF 文档的前一个签名,然后可以使用 添加新的签名 用签名签署PDF
方法的签名文件作为参数。代码如下:
SignatureManager signatureManager = pdf.getSignature();
signatureManager.SignPdfWithSignature(signature);
最后,让我们保存PDF文件;否则,该PDF未使用 保存为
PdfDocument
类的方法。代码很简单,如下:
pdf.saveAs("signed.pdf");
在代码成功编译和执行后,输出生成了一个已被数字签名的 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());
完整的代码如下
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");
}
有关数字签名的更多信息,请查阅 PDF 签名代码示例如果你想增加更多的安全性甚至编辑元数据,请查看 示例代码如下.
这篇文章逐步解释了如何使用 IronPDF for Java 向 PDF 文件添加数字签名。
首先,文章介绍了使用 IronPDF 在 Java 中处理 PDF 所需的必要组件。然后使用 HTML 字符串创建了一个简单的 PDF 文件。使用 Adobe Reader 创建了一个证书文件,该文件用于签署原始 PDF 文件。IronPDF 提供了一个 Signature
和 SignatureManager
类,它帮助用户添加证书并在签名字段中签署PDF。
IronPDF让开发人员能够轻松快捷地执行与PDF相关的任务。它提供像素级精确的PDF结果。对于像Java这样具有多用途且广泛使用的编程语言,IronPDF非常适合处理PDF文档,因为它也多用途,并支持几乎所有的PDF操作。此外,它建立在已经成功的.NET功能之上。
IronPDF还提供从不同文件格式的便捷转换,使用专门为Java设计的快速IronPDFEngine
。您可以使用IronPDF库来 提取或添加文本, 加载和提取图像, 添加页眉和页脚注释 渲染图表和图形,与合作 PDF 表格,以及更多内容。
您可以从以下位置获取有关如何使用 IronPDF 的详细信息: 代码示例 页面。
IronPDF 对于个人开发是免费的,并提供 免费试用 生成没有水印的PDF文档。它可以获得商业使用许可,用户可以从此处获取有关许可的更多信息 详细的许可页面.