概述

合并 Word 文档是在许多应用程序中常见的需求,无论是为了合并报告、整合信息还是简化文档管理。在本文中,我们将探讨如何使用 Python 通过 GroupDocs.Merger 库合并 DOCX 文件。这个强大的库允许开发人员轻松地以编程方式操作 Word 文档,同时确保高性能和准确性。

本指南将涵盖:

如何合并多个 DOCX 文件

使用 GroupDocs.Merger 库合并多个 DOCX 文件非常简单。以下是该过程中的关键步骤:

  1. 导入 GroupDocs.Merger 包:首先导入所需的库。
  2. 创建 Merger 实例:使用第一个 DOCX 文件路径实例化 Merger 类。
  3. 加入其他文档:使用 join 方法添加您想要合并的其他 DOCX 文件。
  4. 保存合并文档:最后,调用 save 方法将合并后的文档写入指定的输出路径。

以下是演示这些步骤的 Python 代码片段:

import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[示例基本用法] # 多文档操作 # 合并 : Docx")

    # 第一步:使用第一个文档创建 Merger 对象
    with gm.Merger(constants.sample_docx) as merger:
        print(f"文档信息成功获取")
        
        # 第二步:加入另一个要合并的 DOCX 文件
        merger.join(constants.sample_docx)
        
        # 第三步:保存合并文档
        merger.save(constants.output_docx)
        print(f"合并到: {constants.output_docx}")
    
    print(f"----------------------------------------------------------------------------")

在没有分节符的情况下合并 DOCX 文档

有时,合并文档需要将内容连接而不插入分节符。这有助于在合并的文档之间保持信息的流动。

  1. 创建 Merger 实例:与之前一样,初始化 Merger 类。
  2. 设置合并选项:定义 WordJoinOptions 并将 mode 设置为 DISABLE_SECTION_BREAKS
  3. 合并文档:添加额外的文档以进行合并。
  4. 保存结果:将最终输出写入新的 DOCX 文件。

以下是您可以这样做的示例:

import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[示例基本用法] # 多文档操作 # 合并 # Word : 在没有分节符的情况下合并 Word 文档")

    # 第一步:使用源文档创建 Merger 对象
    with gm.Merger(constants.sample_doc) as merger:
        print(f"文档信息成功获取")
        
        # 第二步:定义 Word 合并选项以禁用分节符
        word_join_options = gm.domain.options.WordJoinOptions()
        word_join_options.mode = gm.domain.options.WordJoinMode.DISABLE_SECTION_BREAKS
        
        # 第三步:合并文档而不插入分节符
        merger.join(constants.sample_doc, word_join_options)
        
        # 第四步:保存合并文档
        merger.save(constants.output_doc_without_section_breaks)
        print(f"合并到: {constants.output_doc_without_section_breaks}")
    
    print(f"----------------------------------------------------------------------------")

使用预定义合规模式合并 DOCX 文档

在特定用例中,文档可能需要符合某些标准。GroupDocs.Merger 允许您使用预定义的合规模式合并文档,以确保输出符合 ISO 标准等要求。

  1. 创建 Merger 实例:使用您的基本文档初始化 Merger 类。
  2. 设置合规模式:创建 WordJoinOptions 对象并设置 compliance 属性。
  3. 合并文档:使用加入方法添加额外文档。
  4. 保存最终文档:将其保存到您想要的输出位置。

以下是此操作的代码:

import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[示例基本用法] # 多文档操作 # 合并 # Word : 使用预定义合规模式合并 Word 文档")

    # 第一步:使用文档创建 Merger 对象
    with gm.Merger(constants.sample_docx) as merger:
        print(f"文档信息成功获取")
        
        # 第二步:定义带有预定义合规模式的 Word 合并选项
        word_join_options = gm.domain.options.WordJoinOptions()
        word_join_options.compliance = gm.domain.options.WordJoinCompliance.ISO_29500_2008_STRICT
        
        # 第三步:使用合规模式加入另一个文档
        merger.join(constants.sample_docx, word_join_options)
        
        # 第四步:保存合并文档
        merger.save(constants.output_docx_with_predefined_compliance_mode)
        print(f"合并到: {constants.output_docx_with_predefined_compliance_mode}")
    
    print(f"----------------------------------------------------------------------------")

如何从流中合并 DOCX

您还可以从内存中的流中合并 DOCX 文件,这在处理动态生成的文档时非常有用。

  1. 获取文件流:以二进制模式打开文档以获取流。
  2. 创建 Merger 实例:使用流实例化 Merger 类。
  3. 执行合并操作:根据需要合并并保存输出。

以下是您可以实现的示例:

from turtle import update
import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[示例高级用法] # 加载 # 从流中加载文档")

    # 第一步:获取文档流
    stream = get_file_stream()
    
    # 第二步:使用流创建 Merger 实例
    with gm.Merger(stream) as merger:
        print(f"文档成功从流中加载")
    
    print(f"----------------------------------------------------------------------------")

def get_file_stream():
    file_path = constants.sample_docx
    return open(file_path, "rb")

另见

有关更多详细信息,您可以查看以下资源:

您还可以从 releases.groupdocs.com 下载免费试用版,并在 购买临时许可证 中获取临时许可证,以无限制地尝试该库。

代码示例

以下是一些附加示例,帮助您理解如何使用 GroupDocs.Merger 库在 Python 中进行合并:

合并 Word 文档而不从新页面开始

此示例演示如何合并文档,以使第一文档的最后一页直接跟随下一文档的第一页,而不会在两者之间插入任何新页面。

import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[示例基本用法] # 多文档操作 # 合并 # Word : 合并文档而不从新页面开始")

    # 第一步:使用文档创建 Merger 对象
    with gm.Merger(constants.sample_doc) as merger:
        print(f"文档信息成功获取")
        
        # 第二步:定义 Word 合并选项以进行连续模式
        word_join_options = gm.domain.options.WordJoinOptions()
        word_join_options.mode = gm.domain.options.WordJoinMode.CONTINUOUS
        
        # 第三步:合并文档而不插入新页面
        merger.join(constants.sample_doc, word_join_options)
        
        # 第四步:保存合并文档
        merger.save(constants.output_doc_without_starting_from_new_page)
        print(f"合并到: {constants.output_doc_without_starting_from_new_page}")
    
    print(f"----------------------------------------------------------------------------")

使用自定义合并选项合并多个文档

以下示例演示如何在设置特定合并选项的情况下合并 DOCX 文档,例如符合特定 ISO 标准的合规性。

import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[示例高级用法] # 使用自定义合并选项")

    # 第一步:使用基本文档创建 Merger 对象
    with gm.Merger(constants.sample_docx) as merger:
        print(f"文档信息成功获取")
        
        # 第二步:设置带有预定义合规模式的自定义合并选项
        word_join_options = gm.domain.options.WordJoinOptions()
        word_join_options.compliance = gm.domain.options.WordJoinCompliance.ISO_29500_2008_STRICT
        
        # 第三步:使用合规设置合并另一个文档
        merger.join(constants.sample_docx, word_join_options)
        
        # 第四步:保存合并文档
        merger.save(constants.output_docx_with_predefined_compliance_mode)
        print(f"合并到: {constants.output_docx_with_predefined_compliance_mode}")
    
    print(f"----------------------------------------------------------------------------")

另见

要进一步了解 GroupDocs.Merger 及其功能,您可以查看以下资源:

免费试用和临时许可证

您可以从我们的 版本页面 下载 GroupDocs.Merger 的免费试用版。此外,您可以在 购买临时许可证 中获取用于评估的临时许可证。此临时许可证允许您在没有任何限制的情况下尝试该库,并全面评估其能力。