作为 Python 开发人员,您可以在云端以编程方式比较两个或多个 Word 文档 (.docx) 的异同。文档比较可帮助您跟踪 Word 文档中的更改。本文将重点介绍如何在 Python 中使用 REST API 比较两个或多个 Word 文档。

本文应涵盖以下主题:

文档对比 REST API 和 Python SDK

GroupDocs.Comparison for Cloud

为了比较 Microsoft Word 文档,我将使用 GroupDocs.Comparison Cloud 的 Python SDK API。它比较受支持文件格式的两个文档并找出它们之间的差异。因此,它会创建一个包含差异的结果文件,并使您能够“接受”或“拒绝”检索到的更改。它可以很容易地集成到您现有的 Python 应用程序中,使您的最终用户能够比较文档、电子表格、演示文稿、Microsoft Visio 图表、电子邮件和许多其他格式的文件。它还提供 .NET、Java、PHP 和 Ruby SDK 作为 Cloud API 的文档比较家族成员

您可以使用 pip(python 包安装程序)在控制台中使用以下命令将 GroupDocs.Comparison Cloud 安装到您的 Python 项目:

pip install groupdocs_comparison_cloud

在开始执行步骤和可用代码示例之前,请从 仪表板 获取您的客户端 ID 和客户端密码。在代码中添加您的 ID 和密码,如下所示:

client_id = "112f0f38-9dae-42d5-b4fc-cc84ae644972"
client_secret = "16ad3fe0bdc39c910f57d2fd48a5d618"
my_storage = ""

configuration = groupdocs_comparison_cloud.Configuration(client_id, client_secret)
configuration.api_base_url = "https://api.groupdocs.cloud"

在 Python 中使用 REST API 比较 Word 文档

您可以按照下面提到的简单步骤比较两个 Word 文档:

上传文件

首先,使用下面给出的代码示例将源和目标 Word 文档上传到云端:

# 接口初始化
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)
storage_api = groupdocs_comparison_cloud.StorageApi.from_config(configuration)

# 上传示例文件
for filename in glob.iglob("C:\\Files\\*.docx", recursive=True):
    destFile = filename.replace("C:\\Files\\", "", 1)            
    fileExistsResponse = storage_api.object_exists(groupdocs_comparison_cloud.ObjectExistsRequest(destFile))
    if not fileExistsResponse.exists:                                
        file_api.upload_file(groupdocs_comparison_cloud.UploadFileRequest(destFile, filename))
        print("Uploaded file: "+ destFile)

因此,上传的 DOCX 文件(source.docx、target.docx)将在云端仪表板的 文件部分 中可用。

在 Python 中比较 Word 文件

请按照下面提到的步骤以编程方式比较两个 Word 文档。

  • 创建 CompareApi 的实例
  • 设置源 .docx 文件
  • 设置目标 .docx 文件
  • 定义比较选项
  • 创建比较请求
  • 通过调用 CompareApi.comparisons() 方法获取结果

以下代码片段显示了如何使用 REST API 比较两个 Word 文档。

# 创建必要的 API 实例
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.docx"

target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.docx"

options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "Output/result.docx"

request = groupdocs_comparison_cloud.ComparisonsRequest(options)
response = api_instance.comparisons(request)

您可以为受密码保护的源文件或目标文件提供密码,如下所示:

target.password = "5784"

您还可以定义要在比较期间应用的各种设置,并将它们分配给 ComparisonOptions,如下所示:

settings = groupdocs_comparison_cloud.Settings()

# 比较灵敏度
settings.sensitivity_of_comparison = 100

# 为更改自定义样式
settings.inserted_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.inserted_items_style.highlight_color = "14297642"
settings.inserted_items_style.font_color = "16711680"
settings.inserted_items_style.underline = True
settings.deleted_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.deleted_items_style.font_color = "14166746"
settings.deleted_items_style.bold = True
settings.changed_items_style = groupdocs_comparison_cloud.ItemsStyle()
settings.changed_items_style.font_color = "14320170"
settings.changed_items_style.italic = True

options.settings = settings

下载结果文件

上面的代码示例将差异保存在云端新创建的 DOCX 文件中。您可以使用以下代码示例下载它:

# 创建 API 实例
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

request = groupdocs_comparison_cloud.DownloadFileRequest("Output\\result.docx", my_storage)
response = file_api.download_file(request)

# 将下载的文件移动到您的工作目录
shutil.move(response, "C:\\Files\\")        
在 Python 中使用 REST API 比较 Word 文档

生成的文件还在文档末尾包含一个摘要页面,如下所示:

摘要页面

使用 Python 比较多个 Word 文件

请按照下面提到的步骤使用 Python 比较多个 Word 文档。

  • 创建 CompareApi 的实例
  • 设置源 .docx 文件
  • 设置多个目标 .docx 文件
  • 如果需要,定义 ComparisonOptions
  • 创建比较请求
  • 通过调用 CompareApi.comparisons() 方法获取结果

以下代码片段显示了如何使用 Python 比较多个 Word 文档。请按照前面提到的步骤上传多个 DOCX 文件。

# 创建必要的 API 实例
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.docx"
    
target1 = groupdocs_comparison_cloud.FileInfo()
target1.file_path = "target.docx"
    
target2 = groupdocs_comparison_cloud.FileInfo()
target2.file_path = "target2.docx"
    
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target1, target2]
options.output_path = "Output/result.docx"

request = groupdocs_comparison_cloud.ComparisonsRequest(options)
response = api_instance.comparisons(request)

请试用以下使用上述API开发的免费在线DOCX比较工具。 https://products.groupdocs.app/comparison/docx

结论

在本文中,您学习了如何使用 Python 使用文档比较 REST API 来比较云上的 Microsoft Word 文档。您还学习了如何以编程方式将两个或多个文件上传到云端,然后从云端下载生成的文件。您可以使用 文档 了解有关 GroupDocs.Comparison Cloud API 的更多信息。我们还提供了一个 API 参考 部分,让您可以直接通过浏览器可视化我们的 API 并与之交互。如有任何歧义,请随时在论坛上与我们联系。