使用 GroupDocs.Watermark 在 Java 中為 PDF 文件添加附件
在本完整指南中,您將學習 如何將附件加入 PDF 文件,使用功能強大的 GroupDocs.Watermark Java 程式庫。附加補充檔案——無論是合約、資料集或圖像——都能將相關資訊集中在一起,簡化分發。我們將逐步說明環境設定、所需的完整程式碼,以及避免常見問題的實用技巧。
快速解答
- 主要使用情境是什麼? 將支援檔案直接嵌入 PDF 內,使收件人能在同一套件中檢視所有內容。
- 使用哪個程式庫? GroupDocs.Watermark for Java。
- 需要授權嗎? 臨時試用授權可用於評估;完整授權則解鎖所有功能。
- 可以加入多個檔案嗎? 可以——對每個檔案重複附件步驟。
- 是否支援雲端? 當然;API 可在本地與雲端環境中使用。
什麼是「將附件加入 PDF」?
將附件加入 PDF 指的是將外部檔案(例如 Word 文件、圖像、試算表)嵌入 PDF 容器內。附加的檔案會隨 PDF 一起傳遞,且可直接在 PDF 閱讀器中開啟,提升文件交換的可靠性。
為何要在 PDF 中嵌入檔案?
- 單一檔案交付 – 無需壓縮多個檔案。
- 保留上下文 – 附件與原始文件保持關聯。
- 合規性 – 多數法規流程要求將所有支援資料打包。
- 使用者便利 – 收件人只需一次點擊即可取得全部內容。
前置條件
在開始之前,請確保您已具備以下條件:
- GroupDocs.Watermark for Java ≥ 24.11
- JDK 8+(建議 11 版或以上)
- Maven(用於相依管理)
- 基本的 Java 知識與 PDF 處理經驗
設定 GroupDocs.Watermark for Java
Maven 設定
將以下儲存庫與相依項目加入您的 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>
直接下載
或者,從 GroupDocs.Watermark for Java releases 下載最新版本。
取得授權
從 GroupDocs 入口網站取得臨時試用授權或購買完整授權。試用授權已足以測試附件功能。
基本初始化
以下程式碼片段示範如何建立指向範例 PDF 的 Watermarker 實例:
import com.groupdocs.watermark.Watermarker;
public class WatermarkSetup {
public static void main(String[] args) {
// Initialize watermarker with a sample document path
try (Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/document.pdf")) {
System.out.println("GroupDocs.Watermark is set up successfully!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
如何在 Java 中將附件加入 PDF
以下是逐步說明,展示 如何將檔案附加 到 PDF,使用 GroupDocs.Watermark。
步驟 1:載入 PDF 文件
首先,使用 PdfLoadOptions 載入目標 PDF,讓程式庫知道如何解析該檔案:
import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.options.PdfLoadOptions;
// Set options required for loading the PDF file
PdfLoadOptions loadOptions = new PdfLoadOptions();
// Initialize Watermarker with a specific document path and load options
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY/document.pdf", loadOptions);
步驟 2:存取 PDF 內容
取得 PdfContent 物件,可讓您存取附件集合:
import com.groupdocs.watermark.contents.PdfContent;
// Get the content of the PDF as PdfContent
PdfContent pdfContent = watermarker.getContent(PdfContent.class);
步驟 3:載入附件位元組
將欲嵌入的檔案讀取為位元組陣列。此檔案可為任何類型——Word、Excel、圖像等:
byte[] attachmentBytes = { /* Byte data for your document */ };
步驟 4:加入附件
建立 PdfAttachment 實例,並將其加入 PDF 的附件清單:
// Add the attachment to the PDF
groupdocs.watermark.contents.PdfAttachment attachment = new PdfAttachment(attachmentBytes, "sample doc", "sample doc as attachment");
pdfContent.getAttachments().add(attachment);
步驟 5:儲存變更並關閉資源
將修改後的 PDF 持久化為新檔案,並清理資源:
// Save changes to a new PDF file
watermarker.save("YOUR_OUTPUT_DIRECTORY/output_document.pdf");
// Close the watermarker instance
watermarker.close();
常見問題與解決方案
| 問題 | 發生原因 | 解決方法 |
|---|---|---|
| 檔案路徑錯誤 | 相對或絕對路徑不正確 | 確認 YOUR_DOCUMENT_DIRECTORY 與 YOUR_OUTPUT_DIRECTORY 已存在且具可讀寫權限。 |
| 大型附件導致記憶體不足 | 將巨大的檔案載入位元組陣列會消耗記憶體 | 在嵌入前先壓縮檔案,或在處理極大二進位檔時分塊串流。 |
| 找不到授權 | 未提供有效的授權檔案即使用程式庫 | 將 GroupDocs.Watermark.lic 檔案放置於 classpath,或以程式方式設定授權。 |
實務應用
在多個領域中,將檔案嵌入 PDF 皆具價值:
- 法律合約 – 附上附件、證據或附錄。
- 專案提案 – 包含支援的試算表、CAD 圖紙或渲染圖。
- 學術研究 – 打包原始資料集或程式碼片段以確保可重現性。
這些使用情境說明了 如何將檔案附加,讓利害關係人獲得單一、完整的套件。
效能建議
- 保持附件尺寸適中;大型二進位檔會增加 PDF 檔案大小與記憶體佔用。
- 在批次處理多個 PDF 時,重複使用同一個
Watermarker實例,以減少初始化開銷。 - 升級至最新的 GroupDocs.Watermark 版本,以獲得效能提升與錯誤修正。
結論
您現在已掌握使用 GroupDocs.Watermark for Java 為 PDF 檔案 加入附件 的完整、可投入生產的方法。依循上述步驟,即可嵌入任何支援文件、提升協作並維持整潔的交付格式。探索如浮水印、遮蔽與內容抽取等其他功能,以建構完整的 PDF 處理流水線。
常見問答
Q: 可以在 PDF 中加入多個附件嗎?
A: 可以。對每個要嵌入的檔案呼叫 pdfContent.getAttachments().add()。
Q: 支援哪些檔案類型作為附件?
A: 任何可轉為位元組陣列的檔案——PDF、DOCX、XLSX、PNG、ZIP 等。
Q: 如何處理非常大的檔案?
A: 先壓縮檔案,或將其存放於外部,並以超連結方式引用,而非嵌入。
Q: 附件數量有上限嗎?
A: 技術上沒有,但過多的附件可能影響效能與 PDF 大小。
Q: 可在雲端原生的 Java 應用程式中使用嗎?
A: 當然。API 可在任何 Java 執行環境中運作,包括容器與無伺服器函式。
最後更新: 2026-01-18
測試版本: GroupDocs.Watermark 24.11 for Java
作者: GroupDocs