如何使用 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_DIRECTORY 與 YOUR_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提供密碼。
實際應用
抽取頁面在許多真實情境中非常實用:
- 法律簡報: 只抽取與案件審查相關的條款。
- 教育領域: 從教科書產生客製化的學習資料包。
- 商業智慧: 分享長篇年報中的精簡章節。
- 醫療保健: 從大型醫療記錄中分離出患者專屬頁面,同時保護其他資料的安全。
效能考量
- 資源最佳化: 始終將
Merger包在using區塊中,以即時釋放非受控資源。 - 記憶體使用量: 函式庫會串流頁面,即使是 1,000 頁的文件也能維持在 150 MB 以下的 RAM 使用。
- 非同步處理: 若為批次作業,可考慮使用
Task.Run或Parallel.ForEach同時抽取多頁,充分利用 CPU 核心。
常見問答
Q: 可以抽取非連續頁面嗎?
A: 可以,在 ExtractOptions 的 Pages 陣列中列出任意頁碼,函式庫會依您指定的順序抽取。
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 錯誤等問題。
其他資源
- 文件說明: GroupDocs.Merger Documentation
- API 參考: API Reference
- 最新發行版: Latest Releases
- 購買選項: Buy GroupDocs.Merger
- 免費試用: Try for Free
- 臨時授權: Get a Temporary License
- 社群支援: GroupDocs Forum
最後更新: 2026-08-31
測試版本: GroupDocs.Merger 23.12 for .NET
作者: GroupDocs