如何在 Java 中使用 GroupDocs.Watermark 為 PDF 加上浮水印
在當今的數位環境中,如何為 PDF 加上浮水印 是開發安全文件工作流程的開發者常見的問題。無論是保護機密報告或為企業 PDF 加上品牌標誌,GroupDocs.Watermark 函式庫提供了一種乾淨且程式化的方式,在 Java 中新增與管理浮水印。本教學將帶領您完成 PDF 的載入、在特定構件中替換圖像,以及儲存最終的浮水印文件——同時兼顧效能與安全性。
快速回答
- 哪個函式庫負責在 Java 中對 PDF 加浮水印? GroupDocs.Watermark for Java.
- 我可以在 PDF 內替換圖像嗎? 可以,您可以針對單一構件並交換圖像。
- 我需要授權嗎? 免費試用可用於測試;正式環境需購買完整授權。
- 支援受密碼保護的 PDF 嗎? 完全支援——使用
PdfLoadOptions提供密碼。 - 如何儲存已修改的檔案? 呼叫
watermarker.save("output_path.pdf"),然後close()。
什麼是「如何為 PDF 加浮水印」?
為 PDF 加浮水印是指將可見或不可見的標記(例如標誌、文字或圖像)直接嵌入文件中。這可保護智慧財產權、強化品牌形象,並協助追蹤文件的分發情況。
為什麼要在 Java 中使用 GroupDocs.Watermark?
- 完整控制 圖像與文字浮水印。
- 輕鬆整合,可透過 Maven 或直接下載 JAR。
- 強韌處理 受密碼保護及大型 PDF。
- 效能導向 的 API,讓您批次處理文件。
前置條件
- 已安裝 Java Development Kit (JDK) 8+。
- IDE(IntelliJ IDEA、Eclipse 或其他相似工具)。
- 已將 GroupDocs.Watermark 函式庫 加入專案(請參考下方的 Maven 片段)。
設定 GroupDocs.Watermark(Java 版)
在 pom.xml 中加入儲存庫與相依性:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/watermark/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-watermark</artifactId>
<version>24.11</version>
</dependency>
</dependencies>
如果不想使用 Maven,可從 GroupDocs.Watermark for Java releases 下載最新的 JAR。
取得授權
從 GroupDocs 官方網站取得試用或正式授權。授權檔案可於執行時載入,以解鎖全部功能。
基本初始化與設定
以下為建立 Watermarker 實例所需的最小程式碼:
import com.groupdocs.watermark.Watermarker;
public class Main {
public static void main(String[] args) throws Exception {
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/document.pdf");
// Additional operations can be performed here.
watermarker.close();
}
}
使用 GroupDocs.Watermark 為 PDF 加浮水印
載入 PDF 文件
在進行任何浮水印或圖像替換之前,首先需要載入 PDF。
import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.options.PdfLoadOptions;
public class LoadPdfDocument {
public static void run() throws Exception {
PdfLoadOptions loadOptions = new PdfLoadOptions();
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/document.pdf", loadOptions);
}
}
說明:
PdfLoadOptions讓您設定密碼處理、渲染選項等。Watermarker建構子接收檔案路徑與載入選項,提供即用的物件。
在特定構件中替換圖像
有時您需要在 PDF 頁面中替換現有圖像(例如過時的標誌)。以下程式碼示範如何鎖定第一頁的構件並交換其圖像。
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.contents.PdfArtifact;
import com.groupdocs.watermark.contents.PdfContent;
import com.groupdocs.watermark.contents.PdfWatermarkableImage;
public class ReplaceImageInArtifact {
public static void run(Watermarker watermarker) throws Exception {
PdfContent pdfContent = watermarker.getContent(PdfContent.class);
File imageFile = new File("YOUR_DOCUMENT_DIRECTORY/test_image.png");
byte[] imageBytes = new byte[(int) imageFile.length()];
InputStream imageStream = new FileInputStream(imageFile);
imageStream.read(imageBytes);
imageStream.close();
for (PdfArtifact artifact : pdfContent.getPages().get_Item(0).getArtifacts()) {
if (artifact.getImage() != null) {
artifact.setImage(new PdfWatermarkableImage(imageBytes));
}
}
}
}
說明:
PdfContent讓您存取整個 PDF 結構。PdfArtifact代表頁面上的每個可繪製元素;我們會篩選出包含圖像的構件。- 透過從位元組陣列建立新的
PdfWatermarkableImage,即可在不影響其他內容的情況下替換原始圖像。
儲存並關閉已加浮水印的 PDF 文件
完成修改後,將檔案寫入磁碟並釋放資源。
import com.groupdocs.watermark.Watermarker;
public class SaveAndCloseDocument {
public static void run(Watermarker watermarker) throws Exception {
watermarker.save("YOUR_OUTPUT_DIRECTORY/output_document.pdf");
watermarker.close();
}
}
說明:
save()將修改後的 PDF 寫入您指定的位置。close()釋放記憶體及函式庫持有的檔案句柄。
實務應用
- 安全文件分發: 在將 PDF 發送給外部合作夥伴前,將機密圖像替換為加浮水印的版本。
- 品牌一致性: 透過單次批次作業自動更新所有企業 PDF 的標誌。
- 法規報告: 在產生的報告中插入合規印章或更新的圖形。
- 文件管理系統整合: 將浮水印流程掛接至文件管理系統,以自動執行政策。
效能考量
- 記憶體管理: 完成後務必關閉串流(
InputStream、Watermarker)。 - 批次處理: 大量文件時,對每個文件建立單一
Watermarker,盡可能重複使用物件。 - 非同步操作: 可考慮將載入/儲存步驟放在其他執行緒,或使用 Java 的
CompletableFuture以保持 UI 響應。
常見問題
Q:我可以為受密碼保護的 PDF 加浮水印嗎?
A:可以。在載入前透過 PdfLoadOptions.setPassword("yourPassword") 提供密碼。
Q:在單一 PDF 中替換圖像的數量有上限嗎?
A:沒有硬性上限,但極大型 PDF 可能需要更多記憶體;必要時可分批處理。
Q:開發版需要授權嗎?
A:免費試用授權可用於評估;正式部署則需完整授權。
Q:GroupDocs.Watermark 與僅添加簡單覆蓋圖像有何不同?
A:此函式庫會將圖像嵌入 PDF 的內容流,成為文件的一部分,而非可輕易移除的獨立圖層。
Q:我可以在同一文件中同時使用文字與圖像浮水印嗎?
A:當然可以。在同一個 Watermarker 工作階段中同時使用 TextWatermark 與 ImageWatermark。
最後更新: 2026-01-29
測試版本: GroupDocs.Watermark 24.11
作者: GroupDocs