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

如果您需要从大型 DOCX、PDF 或其他办公文档中提取少量页面,使用 GroupDocs.Merger for .NET 的 extract pages from docx 是最可靠的方法。本教程将带您完成整个过程——从安装库到处理边缘情况——让您能够在任何 C# 应用程序中实现页面级别的自动提取。

快速答案

  • 哪个库处理页面提取? GroupDocs.Merger for .NET.
  • 我可以提取非连续页面吗? Yes, specify any page numbers in an array.
  • 支持的格式? Over 70 formats, including DOCX, PDF, PPTX, XLSX, and images.
  • 生产环境需要许可证吗? A valid GroupDocs.Merger license is required for commercial use.
  • 典型的实现时间? About 10‑15 minutes for a basic extraction routine.

什么是 extract pages from 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 library 已在您的项目中安装(请参见下面的安装说明)。
  • .NET runtime:推荐使用 .NET 6 或更高版本;.NET Core 3.1 或 .NET Framework 4.7.2 也可工作。
  • 对 C# 语法和文件系统路径有基本了解。

设置 GroupDocs.Merger for .NET

安装说明

Using .NET CLI:

dotnet add package GroupDocs.Merger

Using Package Manager Console in Visual Studio:

Install-Package GroupDocs.Merger

NuGet Package Manager UI:

  • 在 Visual Studio 中打开您的项目。
  • 导航至 Manage NuGet Packages
  • 搜索 GroupDocs.Merger 并安装最新的稳定版本。

获取许可证

GroupDocs 提供免费试用以测试其功能。对于生产工作负载,请访问 GroupDocs 的购买页面 获取临时或完整许可证。

添加包后,您可以开始使用 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 文档 中列出。
  • 加密文档: 在提取之前通过 LoadOptions.Password 提供密码。

实际应用

提取页面在许多真实场景中非常实用:

  1. 法律简报: 仅提取与案件审查相关的条款。
  2. 教育: 从教材中生成自定义学习包。
  3. 商业智能: 分享冗长年度报告的简明章节。
  4. 医疗保健: 从大型病历中隔离特定患者页面,同时保持其他数据的安全。

性能考虑因素

  • 资源优化: 始终在 using 块中包装 Merger,以及时释放非托管资源。
  • 内存使用: 该库以流方式处理页面,即使是 1,000 页的文档也保持在 150 MB 以下的 RAM。
  • 异步处理: 对于批处理作业,考虑使用 Task.RunParallel.ForEach 并发提取页面,遵循 CPU 核心数。

常见问题

Q: 我可以提取非连续页面吗?
A: 是的,在 ExtractOptionsPages 数组中列出任意页面编号;库会按照您指定的顺序提取它们。

Q: GroupDocs.Merger 支持哪些文档格式?
A: Over 70 formats, including DOCX, PDF, PPTX, XLSX, HTML, SVG, and common image types like PNG and JPEG.

Q: 一次可以提取的页面数量有上限吗?
A: No hard limit; performance depends on system memory and CPU. The library can handle hundreds of pages efficiently.

Q: GroupDocs.Merger 能处理受密码保护的文件吗?
A: Yes. Supply the password via LoadOptions.Password when creating the Merger instance.

Q: 在提取过程中应如何处理异常?
A: Enclose the extraction code in a try‑catch block and log MergerException details to diagnose issues such as unsupported formats or I/O errors.

其他资源


最后更新: 2026-08-31
测试环境: GroupDocs.Merger 23.12 for .NET
作者: GroupDocs

相关教程