如何使用 GroupDocs.Merger for .NET 附加檔案至 PDF
在當今的數位時代,有效管理文件對提升生產力與協作至關重要。最常見的任務之一是 附加檔案至 PDF,讓支援材料與主文件一起傳遞。使用 GroupDocs.Merger for .NET,您只需幾行程式碼即可將額外檔案(如簡報、試算表或影像)直接嵌入 PDF。此教學將帶您完整了解整個流程,從環境準備到可投入生產的實作。
快速解答
- 主要好處是什麼? 您可以將相關檔案打包於單一 PDF 中,免除需要額外的附件。
- 我可以加入多少個附件? GroupDocs.Merger 支援每個 PDF 最多 100 個附件,且不會降低效能。
- 我需要授權嗎? 免費試用可用於開發;正式環境需購買授權。
- 支援哪些 .NET 版本? .NET Framework 4.5+、.NET Core 3.1+、.NET 5+ 以及 .NET 6+。
- 此過程快速嗎? 在標準伺服器上,將附件加入 200 頁的 PDF 通常在 2 秒內完成。
什麼是附加檔案至 PDF?
將檔案附加至 PDF 會將外部文件嵌入為內部附件,使用者可直接在 PDF 檢視器中開啟。此技術可將所有相關資產集中,簡化分發與版本管理。當使用者點擊附件圖示時,嵌入的檔案會被解壓並由檢視器顯示,確保支援材料與主文件一起傳遞,無需額外的電子郵件或壓縮檔。
為何使用 GroupDocs.Merger for .NET?
GroupDocs.Merger 可在典型的雲端 VM 上,透過記憶體效能高的串流架構,處理 每個 PDF 最多 100 個附件,且 在 2 秒內處理 200 頁文件。它亦支援超過 50 種輸入與輸出格式,確保您幾乎可以附加任何檔案類型,無需轉換麻煩。
前置條件
- GroupDocs.Merger for .NET – 透過 NuGet 安裝的最新版本。
- .NET Framework 4.5+ 或 .NET Core 3.1+(任何近期的 .NET 執行環境)。
- Visual Studio(Community 或更高版)或任何支援 .NET 開發的 IDE。
- 具備 C# 與檔案系統路徑的基本知識。
如何使用 GroupDocs.Merger for .NET 附加檔案至 PDF?
載入來源 PDF,指定要嵌入的檔案,然後使用 PdfAttachmentOptions 呼叫 Import 方法。整個操作在記憶體中完成,原始 PDF 結構保持不變,附件安全地儲存在文件內部。
實作指南
以下是核心工作流程的逐步說明。每一步之後都有一個佔位符,標示原始程式碼片段的位置。
步驟 1:定義檔案路徑
設定要修改的 PDF 與欲嵌入檔案的絕對或相對路徑。
dotnet add package GroupDocs.Merger
為什麼? 明確定義檔案路徑可確保執行時能正確找到來源與附件檔案,避免歧義。
步驟 2:設定輸出參數
選擇包含新附件之最終 PDF 的資料夾與檔名。
Install-Package GroupDocs.Merger
為什麼? 將輸入與輸出位置分開可避免意外覆寫,且便於驗證結果。
步驟 3:初始化 PdfAttachmentOptions
PdfAttachmentOptions 用於設定附件加入 PDF 的方式,包括說明與 MIME 類型。
定義說明: PdfAttachmentOptions 是一個設定物件,告訴 GroupDocs.Merger 如何將檔案作為附件嵌入 PDF 中。
string filePath = Path.Combine("YOUR_DOCUMENT_DIRECTORY", "SAMPLE_PDF_2.pdf");
string embeddedFilePath = Path.Combine("YOUR_DOCUMENT_DIRECTORY", "SAMPLE_PPTX.pptx");
為什麼? 此物件讓您控制附件的中繼資料,例如顯示名稱與檔案類型,提升使用者開啟 PDF 時的體驗。
Merger 是 GroupDocs.Merger 的主要類別,提供載入、修改與儲存 PDF 檔案的方法。
步驟 4:載入並匯入文件
建立 Merger 實例,載入來源 PDF,並使用上述選項匯入附件。
string filePathOut = Path.Combine("YOUR_OUTPUT_DIRECTORY", "SamplePdfWithAttachment.pdf");
為什麼? 透過 Merger API 載入 PDF 可保證附件插入時不會損壞現有頁面或註解。
步驟 5:儲存更新後的 PDF
將修改後的 PDF 儲存至先前設定的輸出位置。
PdfAttachmentOptions olePdfOptions = new PdfAttachmentOptions(embeddedFilePath);
為什麼? 儲存會完成變更,並將新的附件資料流寫入 PDF 檔案。
常見問題與解決方案
- FileNotFoundException: 請確認步驟 1 中提供的路徑在檔案系統上確實存在。
- 權限錯誤: 確保應用程式執行緒對來源與目標資料夾皆具有讀寫權限。
- 不支援的附件類型: GroupDocs.Merger 支援文件中列出的所有格式;若為少見類型,可先將其壓縮為 ZIP 再附加。
- 大型檔案: 當附件超過 100 MB 時,請提升程序的記憶體限制或以分塊方式串流附件,以避免
OutOfMemoryException。
實務應用
在許多實務情境中,嵌入附件都非常有用:
- 法律合約 – 將支援的附件、簽名或附錄直接附加於合約 PDF。
- 財務報告 – 包含原始資料試算表或稽核日誌作為隱藏附件供稽核人員使用。
- 教育講義 – 將練習紙、解答鍵或多媒體資源打包於單一 PDF 課程大綱內。
- 專案交付物 – 將設計模型、原始碼壓縮檔與規格文件合併成一個可攜式套件。
透過 GroupDocs.Merger 自動化此流程,可省去手動壓縮的步驟,確保所有利害關係人皆收到完整且自包含的檔案集合。
效能考量
- 記憶體管理: 將
Merger實例放在using區塊中,以便及時釋放非受控資源。 - 批次處理: 若需為多個 PDF 附加檔案,可平行批次處理以利用多核心 CPU。
- 串流 I/O: 對於大型附件,建議使用具非同步讀寫的
FileStream,以保持 UI 響應。
遵循這些最佳實踐,即使處理數十個數百頁的 PDF,也能保持應用程式的回應性。
常見問答
Q: 我可以在單一 PDF 中加入多個附件嗎?
A: 是的。對每個要嵌入的檔案,重複呼叫 Import 方法,並使用新的 PdfAttachmentOptions 實例。
Q: 是否可以移除已存在的附件?
A: GroupDocs.Merger 提供 DeleteAttachment 方法,可依索引或名稱移除指定的附件。
Q: GroupDocs.Merger 如何處理大型檔案?
A: 此函式庫以串流方式處理資料,而非一次載入整個文件至記憶體,讓您在一般硬體上也能處理超過 500 MB 的 PDF。
Q: 可以附加哪些檔案格式?
A: 任何 GroupDocs 支援的格式——包括 DOCX、XLSX、PPTX、ZIP、PNG,甚至可執行檔——皆可作為附件嵌入。
Q: 我可以在更大的工作流程中自動化此操作嗎?
A: 當然可以。此 API 完全相容於背景服務、Azure Functions 與 CI/CD 流水線,實現端對端的文件自動化。
資源
準備好將檔案附加至 PDF 嗎?依照上述步驟,在 IDE 中執行範例佔位符,即可看到 PDF 獲得嵌入資源的功能。
最後更新: 2026-09-11
測試版本: GroupDocs.Merger 23.12 for .NET
作者: GroupDocs
using (Merger merger = new Merger(filePath))
{
// Import the specified document as an attachment
merger.ImportDocument(olePdfOptions);
// Save the resultant PDF with the added attachment
merger.Save(filePathOut);
}