作為 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 並與之交互。如有任何歧義,請隨時在論壇上與我們聯繫。