跳過到頁腳內容
使用 IRONPDF FOR JAVA

Java PDF 印章器(初學者教程)

IronPDF - Java PDF 庫

IronPDF 是一個 Java PDF 庫,用於產生、讀取和編輯 PDF 文件。 它使用戶能夠輕鬆準確地處理 PDF 文件。 IronPDF for Java 是在 IronPDF for .NET 的成功基礎上建立的,可在不同的平台上提供高效性。 IronPDF for Java 使用IronPdfEngine ,速度快且效能最佳化。

IronPDF 可以幫助從 PDF 文件中提取文字和圖像,並從 PDF 文件中提取其他物件。 它可以幫助您從 HTML 字串、URL 和圖像建立 PDF 文件。 它還支援不同文件格式之間的轉換。 您可以輕鬆地在現有 PDF 文件中新增內容、數位簽章以及文件元資料。 它專為 Java 8+、Scala 和 Kotlin 設計,可在任何 Windows、Linux 和雲端平台上運行。

在 Java 應用程式中使用 IronPDF 建立 PDF 印章的步驟

先決條件

要製作 PDF 印章,您需要以下先決條件:

1. Java IDE

您可以使用任何支援 Java 的 IDE。市面上有許多用於 Java 開發的 IDE。 本次示範將使用IntelliJ IDE 。 您可以使用 NetBeans、Eclipse 等工具。

2. Maven 項目

Maven 是一個依賴管理工具,可以控制 Java 專案。 可從Maven 官方網站下載適用於 Java 的 Maven。 IntelliJ IDE for Java 包含 Maven 支援。

3. IronPDF

您可以透過多種方式下載並安裝 IronPDF for Java。

  • 在 Maven 專案的pom.xml檔案中新增 IronPDF 相依性。
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>LATEST_VERSION</version> <!-- Make sure to replace LATEST_VERSION with the actual version number -->
</dependency>
<dependency>
    <groupId>com.ironsoftware</groupId>
    <artifactId>ironpdf</artifactId>
    <version>LATEST_VERSION</version> <!-- Make sure to replace LATEST_VERSION with the actual version number -->
</dependency>
XML

4. Slf4j

此依賴項也用於在現有 PDF 文件上新增內容。 可以使用 IntelliJ 中的 Maven 依賴管理器添加,也可以直接從 Maven 網站下載。將以下相依性加入pom.xml檔中:

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

新增必要的導入

所有必備組件安裝完畢後,下一步是匯入必要的 IronPDF 軟體包以處理 PDF 文件。 在 Main.java 檔案頂部新增以下程式碼:

import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.metadata.MetadataManager;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityManager;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.stamp.*;

import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.edit.PageSelection;
import com.ironsoftware.ironpdf.metadata.MetadataManager;
import com.ironsoftware.ironpdf.security.PdfPrintSecurity;
import com.ironsoftware.ironpdf.security.SecurityManager;
import com.ironsoftware.ironpdf.security.SecurityOptions;
import com.ironsoftware.ironpdf.stamp.*;

import java.io.IOException;
import java.nio.file.Paths;
import java.util.Date;
JAVA

許可證密鑰

IronPDF 中的某些功能需要許可證才能使用。 您可以購買許可證,也可以使用試用許可證免費試用 IronPDF。 您可以如下設定密鑰:

// Set the IronPDF license key
License.setLicenseKey("YOUR-KEY");
// Set the IronPDF license key
License.setLicenseKey("YOUR-KEY");
JAVA

開啟現有 PDF 文檔

若要匯入現有文件以新增內容,可以使用PdfDocument類別。 它的靜態方法fromFile 用於從指定路徑載入具有實際檔案名稱的檔案。 代碼如下:

// Load an existing PDF document
PdfDocument pd = PdfDocument.fromFile(Paths.get("sample.pdf"));
// Load an existing PDF document
PdfDocument pd = PdfDocument.fromFile(Paths.get("sample.pdf"));
JAVA

已載入原始文檔:

Java PDF Stamper(入門教學),圖 1:範例文檔
範例文件

新增新的 HTML 內容

IronPDF 提供印章包。 它提供了一系列有用的標記選項,例如BarcodeStamperHtmlStamperImageStamperTextStamper等,用於內容對齊。 將使用HtmlStamper類別向此 PDF 文件新增新的 HTML 內容。 讓我們使用上一節中的文件,並在其中添加一些內容。 以下程式碼有助於實現此任務:

// Create an HtmlStamper and set its content
HtmlStamper htmlStamper = new HtmlStamper();
htmlStamper.setHtml("New content added!");
// Create an HtmlStamper and set its content
HtmlStamper htmlStamper = new HtmlStamper();
htmlStamper.setHtml("New content added!");
JAVA

建立HtmlStamper對象,然後使用其setHtml 方法附加新的 HTML 程式碼。 下一步是將其應用於現有的 PDF 文檔,以建立一個新的 PDF 版本。

在 PDF 文件中新增所有互動元素

使用先前建立的PdfDocument物件將 HTML 程式碼新增至現有文件中。 它為applyStamp 提供了兩個重載,一個只接受Stamper物件作為內容,另一個也接受頁面選擇。

// Apply the stamper to the PDF document
pd.applyStamp(htmlStamper);
// Apply the stamper to the PDF document
pd.applyStamp(htmlStamper);
JAVA

這將把字串描述添加到現有文件中。

儲存對 PDF 的更改

若要儲存文件,請使用PdfDocument物件的saveAs 方法。

// Save the modified PDF document
pd.saveAs("stamped.pdf");
// Save the modified PDF document
pd.saveAs("stamped.pdf");
JAVA

Java PDF 加蓋工具(入門教學),圖 2:加蓋了印章的 PDF 文件
蓋章的PDF文件

HTML 字串被加入到 PDF 文件的每一頁,並且位於每一頁的中間。

在特定頁面上蓋章

您可以使用applyStamp方法的另一個重載版本將內容新增至特定頁面。

// Stamp content to a specific page
pd.applyStamp(htmlStamper, PageSelection.singlePage(1));
// Stamp content to a specific page
pd.applyStamp(htmlStamper, PageSelection.singlePage(1));
JAVA

PageSelection類別提供了不同的方法來控制頁碼。 firstPagelastPageallPagespageRange是一些可用於適當添加內容的方法。

內容對齊

您可以在每個Stamper類別中使用[setVerticalAlignment](/java/object-reference/api/com/ironsoftware/ironpdf/stamp/Stamper.html#setVerticalAlignment(com.ironsoftware.ironpdf.stamp.VerticalAlignment) 、 [setHorizontalAlignment](/java/object-reference/api/com/ironsoftware/ironpdf/stamp/Stamper.html#setHorizontalAlignment(com.ironsoftware.ironpdf.stamp.HorizontalAlignment) 、 setWidthsetHeight方法來調整新增至現有 PDF 文件中的內容的位置。 以下範例程式碼將幫助您將文字放置在頁面左下角:

// Set the alignment of the stamper
htmlStamper.setHorizontalAlignment(HorizontalAlignment.LEFT);
htmlStamper.setVerticalAlignment(VerticalAlignment.BOTTOM);
// Set the alignment of the stamper
htmlStamper.setHorizontalAlignment(HorizontalAlignment.LEFT);
htmlStamper.setVerticalAlignment(VerticalAlignment.BOTTOM);
JAVA

Java PDF 加蓋工具(入門教學),圖 3:帶有加蓋對齊效果的輸出 PDF 文件
輸出的 PDF 檔案已進行印章對齊

您可以使用setVerticalOffsetsetHorizontalOffset方法進一步調整內容的位置。

有關使用 IronPDF 處理 PDF 文件的更多信息,請訪問此Java 中 HTML 到 PDF 轉換的程式碼範例

為現有文件新增元資料、簽章和安全選項

IronPDF for Java 是一個功能強大的庫,它提供了以元資料形式添加文件描述、添加用戶權限、添加用戶密碼、添加數位簽名以及創建簽名文件以保存 PDF 文檔版本的功能。

元數據

// Edit file metadata
MetadataManager metadata = pd.getMetadata();
metadata.setAuthor("Satoshi Nakamoto");
metadata.setKeywords("SEO, Friendly");
metadata.setModifiedDate(new Date().toString());
// Edit file metadata
MetadataManager metadata = pd.getMetadata();
metadata.setAuthor("Satoshi Nakamoto");
metadata.setKeywords("SEO, Friendly");
metadata.setModifiedDate(new Date().toString());
JAVA

安全選項

您也可以控制 PDF 檔案的安全性選項,以防止資料被未經授權使用。 它提供了將[setAllowUserPrinting](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setAllowUserPrinting(com.ironsoftware.ironpdf.security.PdfPrintSecurity) )、 [setAllowUserEdits](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setAllowUserEdits(com.ironsoftware.ironpdf.security.PdfEditSecurity) )、 [setAllowUserCopyPasteContent](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setAllowUserCopyPasteContent(java.lang.Boolean) )、 [setAllowUserAnnotations](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setAllowUserAnnotations(java.lang.Boolean) )、 [setUserPassword](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setUserPassword(java.lang.String) )、 [setAllowUserFormData](/java/object-reference/api/com/ironsoftware/ironpdf/security/SecurityOptions.html#setAllowUserFormData(java.lang.Boolean) )參數設為 true 或 false 的選項。 以下範例程式碼將幫助設定上面提到的所有物件屬性。

// Edit file security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setAllowUserCopyPasteContent(false);
securityOptions.setAllowUserAnnotations(false);
securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS);
securityOptions.setAllowUserFormData(false);
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
// Edit file security settings
SecurityOptions securityOptions = new SecurityOptions();
securityOptions.setAllowUserCopyPasteContent(false);
securityOptions.setAllowUserAnnotations(false);
securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS);
securityOptions.setAllowUserFormData(false);
securityOptions.setOwnerPassword("top-secret");
securityOptions.setUserPassword("sharable");
JAVA

使用者密碼

// Change or set the document encryption password
SecurityManager securityManager = pd.getSecurity();
securityManager.removePasswordsAndEncryption();
securityManager.makePdfDocumentReadOnly("secret-key");

securityManager.setSecurityOptions(securityOptions);
pd.saveAs(Paths.get("assets/secured.pdf"));
// Change or set the document encryption password
SecurityManager securityManager = pd.getSecurity();
securityManager.removePasswordsAndEncryption();
securityManager.makePdfDocumentReadOnly("secret-key");

securityManager.setSecurityOptions(securityOptions);
pd.saveAs(Paths.get("assets/secured.pdf"));
JAVA

要為實際文件添加數位簽名,您可以查看這個詳細的 PDF 簽名程式碼範例

摘要

本文討論如何在Java中為現有的PDF文件新增內容。 有一個圖章包,其中包含許多有用的圖章類,可用於在原始文件的任何所需位置向 PDF 添加多種格式的內容。

從上面的程式碼範例也可以看出, IronPDF是一個功能強大的函式庫。 它雖然簡單,但卻是一款功能非常強大的PDF產生和編輯工具。 這有助於開發人員輕鬆地將所有 PDF 功能整合到單一 Java 應用程式中。

IronPDF 對單一開發項目免費,並提供無浮水印的免費試用許可證,以便測試其全部功能。 但是,如果用於商業用途,則應獲得 IronPDF 的許可

最後,IronPDF 還推出了一項特別促銷活動,購買 Iron Software 套件時,開發人員可以以兩個授權的價格購買所有五款 Iron Software 產品。

常見問題解答

如何在 Java 中為現有的 PDF 文件新增內容?

您可以使用 IronPDF for Java 中的 HtmlStamper 類,將 HTML 內容新增至現有的 PDF 文件。此類別可讓您在整合新內容的同時保留原始格式。

在 Java 中建立 PDF stamper 的主要步驟是什麼?

要使用 IronPDF for Java 創建 PDF stamper,您需要設定 Java IDE,建立 Maven 專案進行相依性管理,並包含 IronPDF 函式庫。然後,匯入必要的類別,初始化許可證,開啟現有的 PDF,並使用 HtmlStamper 新增內容。

在新增內容時,如何確保 PDF 的格式得以保留?

IronPDF for Java 在添加新內容時可保持 PDF 的原始格式。這是透過其強大的渲染引擎來實現的,它可以在整合新元素的同時準確複製現有的版面。

是否可以只在 PDF 的特定頁面上套用圖章?

是的,使用 IronPDF for Java,您可以使用 applyStamp 方法以及 PageSelection 類來針對 PDF 中的特定頁面來進行戳記。

如何調整 PDF 文件中蓋章內容的位置?

您可以使用 HtmlStamper 類中的 setVerticalAlignmentsetHorizontalAlignment 方法來調整 PDF 中蓋章內容的位置,以控制新內容在頁面上出現的位置。

PDF 文件有哪些可用的安全功能?

IronPDF for Java 提供了多種安全功能,包括設定使用者權限、新增密碼,以及控制 PDF 文件內列印、編輯和複製內容的存取權限。

將 PDF 函式庫用於商業用途需要授權嗎?

是的,在商業環境中使用 IronPDF for Java 需要商業許可證。但是,我們提供免費的試用授權,可以在不帶水印的情況下測試圖庫的全部功能。

IronPDF for Java 兼容哪些平台?

IronPDF for Java 與 Java 8+、Scala、Kotlin 相容,並支援各種平台,包括 Windows、Linux 和 Cloud 環境。

如何在 Java 中將 HTML 內容轉換成 PDF?

您可以使用 IronPDF for Java 的 RenderHtmlAsPdf 方法將 HTML 內容轉換為 PDF,讓 HTML 字串或檔案精確地呈現為 PDF 文件。

在項目中開始使用 IronPDF for Java 需要哪些條件?

要開始使用 IronPDF for Java,請確保您擁有 IntelliJ 之類的 Java IDE、用於管理相依性的 Maven 專案,以及 IronPDF 函式庫。您還需要匯入相關的類別,並為函式庫設定授權。

Darrius Serrant
全棧軟件工程師 (WebOps)

Darrius Serrant 擁有邁阿密大學計算機科學學士學位,目前任職於 Iron Software 的全栈 WebOps 市場營銷工程師。從小就迷上編碼,他認為計算既神秘又可接近,是創意和解決問題的完美媒介。

在 Iron Software,Darrius 喜歡創造新事物,並簡化複雜概念以便於理解。作為我們的駐場開發者之一,他也自願教學生,分享他的專業知識給下一代。

對 Darrius 來說,工作令人滿意因為它被重視且有實際影響。