跳至頁尾內容
使用 IRONPDF FOR JAVA

Java PDF Stamper(入門教學)

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類別為現有 PDF 文件新增 HTML 內容。此類別可讓您在保留原始格式的同時整合新內容。

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

要使用 IronPDF for Java 建立 PDF 印章,您需要安裝 Java IDE,建立 Maven 專案進行依賴管理,並引入 IronPDF 庫。然後,導入必要的類,初始化許可證,打開一個現有的 PDF 文件,並使用HtmlStamper添加內容。

如何確保在新增內容時 PDF 的格式保持不變?

IronPDF for Java 在新增內容時能夠保持 PDF 的原始格式。這得益於其強大的渲染引擎,該引擎能夠在整合新元素的同時,精確地複製現有佈局。

是否可以只在PDF文件的特定頁面上新增圖章?

是的,使用 IronPDF for Java,您可以結合PageSelection類別使用applyStamp方法來定位 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 和雲端環境在內的各種平台。

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

您可以使用 IronPDF for Java 的RenderHtmlAsPdf方法將 HTML 內容轉換為 PDF,從而將 HTML 字串或檔案準確地渲染為 PDF 文件。

在專案中使用 IronPDF for Java 需要哪些條件?

若要開始使用 IronPDF for Java,請確保您已安裝 Java IDE(例如 IntelliJ)、用於管理相依性的 Maven 專案以及 IronPDF 程式庫。您還需要導入相關類別並設定庫的許可證。

柯蒂斯·週
技術撰稿人

Curtis Chau擁有卡爾頓大學電腦科學學士學位,專長於前端開發,精通Node.js、TypeScript、JavaScript和React。他熱衷於打造直覺美觀的使用者介面,喜歡使用現代框架,並擅長撰寫結構清晰、視覺效果出色的使用者手冊。

除了開發工作之外,柯蒂斯對物聯網 (IoT) 也抱有濃厚的興趣,致力於探索硬體和軟體整合的創新方法。閒暇時,他喜歡玩遊戲和製作 Discord 機器人,將他對科技的熱愛與創造力結合。