使用 IRONPDF FOR JAVA

如何在 Java 中添加數位簽名到 PDF

已更新 2024年8月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 IDE (NetBeans、Eclipse、IntelliJ) 已安裝**- 本文將使用 IntelliJ。你可以從以下位置單獨下載 Java Development Kit 甲骨文網站.
  • Maven Java Project for Automation - 這將幫助下載和管理 Java 程式中的依賴項。您可以從 Apache Maven 網站.
  • IronPDF 程式庫下載和安裝 - 要下載並安裝 IronPDF,請包含其 Maven 依賴項目工件。您可以在 pom.xml 文件的 dependencies 標籤中添加以下代碼片段:
<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 Import Java Packages

在主文件中需要以下導入。它允許使用 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文檔用於PDF簽名使用。 渲染Html為Pdf 方法的 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 類別幫助添加簽章憑證。 [getSignature](/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 文件添加數字簽名。

首先,本文介紹了在 Java 中使用 IronPDF 處理 PDF 所需的必要組件。然後使用 HTML 字符串創建了一個簡單的 PDF 文件。通過 Adobe Reader 創建了一個證書文件,用於簽署原始的 PDF 文件。IronPDF 提供了 SignatureSignatureManager 類別,可幫助使用者新增證書和在 PDF 簽名欄中簽署。

IronPDF 使開發人員能夠輕鬆快速地執行與 PDF 相關的任務。它提供像素級精確的 PDF 結果。對於像 Java 這樣通用且廣泛使用的程式語言,IronPDF 非常適合處理 PDF 文件,因為它同樣通用且支援幾乎所有的 PDF 操作。此外,IronPDF 建立在已經成功的 .NET 功能之上。

IronPDF 還提供從不同檔案格式輕鬆轉換,使用專為 Java 設計的快速 IronPDFEngine。您可以使用 IronPDF 庫來 提取或添加文本, 載入並提取圖像, 添加頁首和頁尾註釋 渲染圖表和圖形, 使用 PDF 表單以及更多。

您可以從以下來源獲取有關如何使用 IronPDF 的詳細信息 程式碼範例 頁面。

IronPDF 對於個人開發是免費的並提供 免費試用 生成沒有浮水印的PDF文件。它可以授權用於商業用途,其使用者可以從此取得有關授權的更多資訊 詳細授權頁面.

< 上一頁
Java PDF 轉換器(代碼範例教程)
下一個 >
如何在 Java 中閱讀 PDF 檔案

準備開始了嗎? 版本: 2024.9 剛剛發布

免費 Maven 下載 查看許可證 >