Python 開発者は、クラウド上でプログラム的に 2 つ以上の Word 文書 (.docx) を比較して類似点と相違点を確認できます。文書の比較は、Word 文書内の変更を追跡するのに役立ちます。この記事では、Python の REST API を使用して 2 つ以上の Word ドキュメントを比較する方法に焦点を当てます。

この記事では次のトピックについて説明します。

REST API と Python SDK のドキュメント比較

GroupDocs.クラウドの比較

Microsoft Word ドキュメントを比較するには、GroupDocs.Comparison Cloud の Python SDK API を使用します。サポートされているファイル形式の 2 つのドキュメントを比較し、それらの間の相違点を見つけます。その結果、相違点を含む結果ファイルが作成され、取得した変更を受け入れるか拒否できるようになります。既存の Python アプリケーションに簡単に統合でき、エンドユーザーがドキュメント、スプレッドシート、プレゼンテーション、Microsoft Visio の図、電子メール、その他多くの形式のファイルを比較できるようになります。また、クラウド API の ドキュメント比較ファミリー メンバー として .NET、Java、PHP、および Ruby SDK も提供します。

コンソールで次のコマンドを使用して、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 ドキュメントを比較する

以下の簡単な手順に従って、2 つの Word 文書を比較できます。

ドキュメントをアップロードする

まず、以下のコード例を使用して、ソースとターゲットの Word ドキュメントをクラウドにアップロードします。

# APIの初期化
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 ファイルを比較する

2 つの Word 文書をプログラムで比較するには、以下の手順に従ってください。

  • CompareApi のインスタンスを作成する
  • ソース .docx ファイルを設定する
  • ターゲットの .docx ファイルを設定します
  • 比較オプションの定義
  • 比較の作成リクエスト
  • CompareApi.comparisons() メソッドを呼び出して結果を取得します

次のコード スニペットは、REST API を使用して 2 つの 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 ドキュメントを比較する方法を学習しました。また、プログラムによって 2 つ以上のファイルをクラウドにアップロードし、結果のファイルをクラウドからダウンロードする方法も学習しました。 GroupDocs.Comparison Cloud API の詳細については、ドキュメント を使用して学習できます。また、API リファレンス セクションも提供されており、ブラウザーを通じて直接 API を視覚化して操作できるようになります。不明な点がある場合は、フォーラム でお気軽にお問い合わせください。