页面构建器功能通过允许用户无缝地将来自不同文档的页面以精确和轻松的方式组合在一起,彻底改变了文档合并。它能够以任意顺序合并页面,给予最终文档结构的完全控制权。无论是合并几个关键页面还是创建综合文档,这个工具都确保灵活性和效率。通过减少手动工作,它简化了制作定制文档的过程,节省了宝贵的时间,提高了个人和专业工作流程的整体生产力。

页面构建器 - 如何合并文档中的页面

以下主题在这里讨论:

如果您对 Merging documents online 感兴趣,请访问由 GroupDocs 提供支持的 Online Merging Tool

理解页面构建器

页面构建器功能引入了一种简化的方式,通过结合多个源文档的页面来创建自定义文档。此功能允许开发人员逐步构建新文档,以任意顺序从两个或更多文档中添加页面。以下是该过程的工作原理:

  • 首先,通过使用 Merger 类加载源 Word 文档,并将其中一个源文档传递给构造函数。
  • 逐个合并文档,使用 Join 方法。
  • 初始化 Page Builder。通过 Merger 实例中的方法 CreatePageBuilder。这作为构建新文档的起点。
  • Page Builder 实例的 AddPage 方法允许将之前合并文档中的任何特定页面添加到目的文档中。
  • 对于每个源文件,选择您想在索引中包含的特定页面;
  • 将这些页面按照所需的顺序添加到新文档中。您可以从不同的文档中混合和匹配页面,以满足您的需求;
  • 重复此过程以处理额外的源文档,确保您可以灵活地组合页面以最佳满足您的要求;
  • 使用 ApplyPageBuilder 方法从页面构建器实例应用更改
  • 将合并的文档保存到任意位置。添加所有必要的页面后,保存新文档。最终输出将是一个完全自定义的文件,包含来自多个来源的页面,按照您想要的方式组织。

这个逐步的方法使得创建针对特定用途的文档变得简单,例如编写报告、创建个性化演示文稿或组装法律文件。借助页面构建器,开发人员可以完全控制页面的顺序和内容,消除了耗时的手动编辑需求,并确保最终输出的准确性。

示例案例和代码实现

让我们通过一个实际例子来演示如何在 GroupDocs.Merger 中使用页面构建器功能。为了简化案例,假设我们有两个文档:

  • Document A with 4 pages.
  • Document B with 4 pages.

我们旨在通过根据特定场景以不同顺序合并这两个文档的页面来创建一个新文档。

Page Builder - 示例 A 和 B 的文档结构,每个包含 4 页

在这里我们将每个文档页面标记为文档字母 A、B 和页码。从文档 A 和 B 我们需要收到定制的文档 C,结构如下

Page Builder - 示例 A 和 B 的文档结构,每个包含 4 页

以下源代码片段显示了如何从几个文档中合并特定页面到结果文档中。

string documentA = @"documentA.pdf";
string documentB = @"documentB.pdf";
string documentC = @"documentC.pdf";

using (Merger merger = new Merger(documentA))
{
    merger.Join(documentB);

    PageBuilder pageBuilder = merger.CreatePageBuilder();
    // get documents A and B references
    var docA = pageBuilder.Documents[0];
    var docB = pageBuilder.Documents[1];
    
    pageBuilder.AddPage(docA.Pages[0]); // document A, page 1 or Page A-1
    pageBuilder.AddPage(docB.Pages[0]); // document B, page 1 or Page B-1
    pageBuilder.AddPage(docB.Pages[1]); // document B, page 2 or Page B-2
    pageBuilder.AddPage(docB.Pages[2]); // document B, page 3 or Page B-3
    pageBuilder.AddPage(docA.Pages[1]); // document A, page 2 or Page A-2
    pageBuilder.AddPage(docA.Pages[3]); // document A, page 4 or Page A-4
    
    // Apply the page order
    merger.ApplyPageBuilder(pageBuilder);

    merger.Save(documentC);
}

指定所需页面的范围

在处理文档操作时,以高效的方式添加多个页面对于处理复杂的工作流程至关重要。您可以使用 AddPageRange 方法,而不是单独添加页面,该方法接受一个 IPageInfo 对象数组,代表特定页面。这种方法简化了过程,减少了重复代码,并通过允许批量操作来提高性能。下面是一个代码示例,演示如何利用此方法从不同文档中一次性添加多个页面,进行简化操作。

以下是将来自不同文档的多个页面合并为一个范围的步骤:

  • 创建一个 Merger 对象,并提供源文件的路径或流。
  • 使用 Join 添加另一个源文档。对于每个您想要合并的文档,请重复此步骤。
  • 创建一个 PageBuilder 对象,方法是调用 CreatePageBuilder 方法。
  • 调用 AddPageRange 方法并传递一个包含 IPageInfo 对象的数组,以描述适当的页面。请注意, IPageInfo 对象对源文档和页码使用零基计数法。
  • 使用 ApplyPageBuilder 方法将指定的页面顺序应用于合并的文档。
  • 通过调用 Save 方法并提供文件路径来保存生成的文档。
string documentA = @"documentA.pdf";
string documentB = @"documentB.pdf";
string documentC = @"documentC.pdf";

using (Merger merger = new Merger(documentA))
{
    merger.Join(documentB);

    PageBuilder pageBuilder = merger.CreatePageBuilder();
     // get documents A and B references
    var docA = pageBuilder.Documents[0];
    var docB = pageBuilder.Documents[1];
    // Specify a range of pages
    IPageInfo[] range = new IPageInfo[] {
        docA.Pages[0], // Page A-1 from the document A
        docB.Pages[0], // Page B-1 from the document B
        docB.Pages[1], // Page B-2 from the document B
        docB.Pages[2], // Page B-3 from the document B
        docA.Pages[1], // Page A-2 from the document A
        docA.Pages[3], // Page A-4 from the document A                    
    };
    // Append a page of pages
    pageBuilder.AddPageRange(range);

    // Apply the page order
    merger.ApplyPageBuilder(pageBuilder);

    merger.Save(documentC);
}

结论

这些例子说明了页面构建器功能的多样性。开发人员可以轻松地以各种顺序组合来自多个文档的页面,以创建量身定制的输出。此功能显著减少了手动工作,并确保文档生成的精确性,成为多种用例中不可或缺的工具。

获取免费 API 许可证

你可以 获取一个免费的临时许可证 来使用 API,无需评估限制。

构建您自己的合并页面生成器应用程序

这里有一些重要的链接,可以帮助您构建自己的文档比较应用程序。

文档 | API 参考 | 支持的文件格式

运行示例 – GitHub | 免费支持论坛 | 发布说明

另见

有关更多信息和额外资源,您可能会发现以下链接有用: