使用 IRONPDF FOR JAVA

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

已更新 2024年8月25日
分享:

在本文中,您將學習如何在 Java 程式中使用 IronPDF 向 PDF 添加數位簽名。

IronPDF - Java PDF 庫

IronPDF Java PDF Library 概覽是一個 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 Development Kit 的網站單獨下載。Oracle Java SE 下載.
  • Maven Java 專案自動化 - 這將有助於在您的 Java 程式中下載和管理相依性。 您可以從 Maven 下載Apache Maven 下載頁面.
  • IronPDF 庫下載和安裝 - 要下載和安裝 IronPDF,請包含其 Maven 依賴工件。 您可以在 pom.xml 文件的依赖项標籤中添加以下代碼片段:

    xml-mvn-install-ao 請提供內容以進行翻譯。

  • 另一個所需的依賴是 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 文件

To學習如何數位簽署 PDF 文件,需要從頭開始建立 PDF 文件或打開現有的 PDF 文件。 本文將使用創建一個新的 PDF 文件以進行 PDF 簽名renderHtmlAsPdf 方法PdfDocument Class. 代碼如下:

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檔案。

如何在 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文件的先前簽名,然後可以使用新增新的簽名。SignPdfWithSignature 方法將簽名文件作為參數。 代碼如下:

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

保存 PDF 簽名文件

最後,讓我們保存 PDF 文件;否則,PDF 將未使用簽名。saveAs 方法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 操作。 此外,它是基於已成功的 .NET 功能構建的。

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

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

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

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

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

免費 Maven 下載 查看許可證 >