如何使用 GroupDocs.Merger for .NET 在 C# 中從 docx 提取頁面

如果您需要從大型 DOCX、PDF 或其他辦公文件中抽取少量頁面,使用 GroupDocs.Merger for .NET 進行 extract pages from docx 是最可靠的方式。本教學將一步步帶您完成整個流程——從安裝函式庫到處理邊緣案例——讓您能在任何 C# 應用程式中自動化頁面級別的抽取。

快速回答

  • 哪個函式庫負責頁面抽取? GroupDocs.Merger for .NET。
  • 可以抽取非連續頁面嗎? 可以,於陣列中指定任意頁碼。
  • 支援的格式? 超過 70 種格式,包含 DOCX、PDF、PPTX、XLSX 以及影像。
  • 商業使用需要授權嗎? 商業用途必須擁有有效的 GroupDocs.Merger 授權。
  • 典型實作時間? 基本抽取程式約需 10‑15 分鐘。

什麼是從 docx 提取頁面?

extract pages from docx 是指從 DOCX(或任何支援的格式)中選取單獨頁面,並將其儲存為較小的新文件。GroupDocs.Merger 在不將整個檔案載入記憶體的情況下完成此操作,即使是上百頁的檔案也能保持低記憶體使用量。

為什麼使用 GroupDocs.Merger for .NET?

GroupDocs.Merger 支援 70+ 輸入與輸出格式,可處理最多 500 頁 的文件,且在一般伺服器上使用的記憶體低於 100 MB。此函式庫可在 .NET Core、.NET 5/6/7 以及完整的 .NET Framework 上執行,提供跨平台彈性,且不需安裝 Microsoft Office。

前置條件

  • GroupDocs.Merger 函式庫 已安裝於專案中(請參考下方安裝說明)。
  • .NET 執行環境:建議使用 .NET 6 或更新版本;亦支援 .NET Core 3.1 或 .NET Framework 4.7.2。
  • 具備基本的 C# 語法與檔案系統路徑概念。

設定 GroupDocs.Merger for .NET

安裝說明

使用 .NET CLI:

dotnet add package GroupDocs.Merger

使用 Visual Studio 的 Package Manager Console:

Install-Package GroupDocs.Merger

NuGet 套件管理員 UI:

  • 在 Visual Studio 開啟您的專案。
  • 前往 Manage NuGet Packages
  • 搜尋 GroupDocs.Merger,並安裝最新的穩定版。

取得授權

GroupDocs 提供免費試用以測試功能。若需於正式環境使用,請前往 GroupDocs’ purchase page 取得臨時或正式授權。

加入套件後,即可開始使用 API:

using GroupDocs.Merger;

如何從文件中提取特定頁面?

要抽取特定頁面,首先以 Merger 類別載入來源文件,接著建立一個列出目標頁碼的 ExtractOptions 物件。呼叫 ExtractPages 並傳入該選項,最後將結果儲存至目標路徑。此方式適用於所有支援的格式,且能有效處理大型檔案。

步驟 1:設定檔案路徑

定義來源文件所在位置以及抽取後檔案的儲存位置。

string filePath = Path.Combine("YOUR_DOCUMENT_DIRECTORY", "sample.docx");
string filePathOut = Path.Combine("YOUR_OUTPUT_DIRECTORY", "extracted_pages.docx");

說明: 請將 YOUR_DOCUMENT_DIRECTORYYOUR_OUTPUT_DIRECTORY 替換為您機器或伺服器上的實際資料夾路徑。

步驟 2:指定要提取的頁面

建立 ExtractOptions 實例,告訴 Merger 要抽取哪些頁面。

ExtractOptions extractOptions = new ExtractOptions(new int[] { 1, 4 });

說明: Pages 陣列列出您想要的頁碼。依需求自行修改(例如 new[] {2, 5, 7})。

步驟 3:建立 Merger 物件

using 區塊內實例化 Merger,以確保資源自動釋放。

using (Merger merger = new Merger(filePath))
{
    // Code to extract pages will go here.
}

說明: using 陳述式保證檔案句柄會被關閉,避免多執行緒環境下的檔案鎖定問題。

步驟 4:提取並儲存

使用 ExtractPages 並傳入您的選項,然後以 Save 方法寫入結果。

// Extract specified pages from the document
merger.ExtractPages(extractOptions);

// Save the resultant document with extracted pages
merger.Save(filePathOut);

說明: Save 方法會將新文件寫入 outputPath。您可透過變更檔案副檔名(例如 .pdf)來選擇任何支援的輸出格式。

常見問題與解決方案

  • 檔案路徑錯誤: 請再次確認目錄是否存在,且應用程式具備讀寫權限。
  • 不支援的格式: 請參考 GroupDocs.Merger Documentation 確認來源檔案類型是否在支援清單內。
  • 加密文件: 在抽取前,使用 LoadOptions.Password 提供密碼。

實際應用

抽取頁面在許多真實情境中非常實用:

  1. 法律簡報: 只抽取與案件審查相關的條款。
  2. 教育領域: 從教科書產生客製化的學習資料包。
  3. 商業智慧: 分享長篇年報中的精簡章節。
  4. 醫療保健: 從大型醫療記錄中分離出患者專屬頁面,同時保護其他資料的安全。

效能考量

  • 資源最佳化: 始終將 Merger 包在 using 區塊中,以即時釋放非受控資源。
  • 記憶體使用量: 函式庫會串流頁面,即使是 1,000 頁的文件也能維持在 150 MB 以下的 RAM 使用。
  • 非同步處理: 若為批次作業,可考慮使用 Task.RunParallel.ForEach 同時抽取多頁,充分利用 CPU 核心。

常見問答

Q: 可以抽取非連續頁面嗎?
A: 可以,在 ExtractOptionsPages 陣列中列出任意頁碼,函式庫會依您指定的順序抽取。

Q: GroupDocs.Merger 支援哪些文件格式?
A: 超過 70 種格式,包含 DOCX、PDF、PPTX、XLSX、HTML、SVG 以及常見影像類型如 PNG、JPEG。

Q: 同時抽取的頁數有上限嗎?
A: 沒有硬性上限,效能取決於系統記憶體與 CPU。函式庫能有效處理數百頁的抽取需求。

Q: GroupDocs.Merger 能處理受密碼保護的檔案嗎?
A: 能。建立 Merger 實例時,於 LoadOptions.Password 提供密碼即可。

Q: 抽取過程中發生例外應如何處理?
A: 請將抽取程式碼置於 try‑catch 區塊,並記錄 MergerException 的詳細資訊,以診斷不支援格式或 I/O 錯誤等問題。

其他資源


最後更新: 2026-08-31
測試版本: GroupDocs.Merger 23.12 for .NET
作者: GroupDocs

相關教學