如何使用 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

實務應用

在許多實務情境中,嵌入附件都非常有用:

  1. 法律合約 – 將支援的附件、簽名或附錄直接附加於合約 PDF。
  2. 財務報告 – 包含原始資料試算表或稽核日誌作為隱藏附件供稽核人員使用。
  3. 教育講義 – 將練習紙、解答鍵或多媒體資源打包於單一 PDF 課程大綱內。
  4. 專案交付物 – 將設計模型、原始碼壓縮檔與規格文件合併成一個可攜式套件。

透過 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);
}

相關教學