Python で REST API を使用して PDF ファイルを比較する

PDF(Portable Document Format) は、現在最も一般的に使用されているファイル タイプの 1 つです。通常は、ページのレイアウトを維持しながら、読み取り専用ドキュメントを配布するために使用されます。さまざまな場合において、2 つ以上の PDF ドキュメントの内容を比較したり、同じドキュメントの複数のバージョンを比較したりする必要が生じることがあります。 PDF ドキュメントをプログラムで簡単に比較して、類似点と相違点を特定できます。この記事では、Python の REST API を使用して PDF ファイルを比較する方法を学びます。

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

PDF ファイルと Python SDK を比較するための REST API

PDF ドキュメントの比較には、GroupDocs.Comparison Cloud の Python SDK API を使用します。 サポートされている形式 の 2 つ以上の文書を比較し、相違点を見つけることができます。コンソールで次のコマンドを使用してインストールしてください。

pip install groupdocs_comparison_cloud

上記の手順に従う前に、ダッシュボードからクライアント ID とシークレットを取得してください。 ID とシークレットを取得したら、以下に示すようにコードを追加します。

# このコード例は、クライアント ID とシークレットを設定する方法を示しています。
client_id = "659fe7da-715b-4744-a0f7-cf469a392b73"
client_secret = "b377c36cfa28fa69960ebac6b6e36421"

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

Python の REST API を使用して 2 つの PDF ファイルを比較する

以下に示す簡単な手順に従って、クラウド上の PDF ドキュメントを比較できます。

  1. PDFファイルをクラウドにアップロード
  2. PDF ファイルを比較
  3. ダウンロード 結果の PDF ファイル

PDF ファイルをアップロードする

まず、次のコード サンプルを使用して、ソース PDF ファイルとターゲット PDF ファイルをクラウドにアップロードします。

# このコード例は、PDF ファイルをクラウドにアップロードする方法を示しています。
# APIのインスタンスを作成する
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# サンプルファイルをアップロードする
for filename in glob.iglob("C:\\Files\\*.pdf", recursive=True):
    destFile = filename.replace("C:\\Files\\", "", 1)            
    file_api.upload_file(groupdocs_comparison_cloud.UploadFileRequest(destFile, filename))
    print("Uploaded file: "+ destFile)

その結果、アップロードされたファイルはクラウド上のダッシュボードの ファイル セクション で利用できるようになります。

Python を使用して PDF ファイルを比較する

以下の手順に従って、2 つの PDF ドキュメントをプログラムで比較できます。

  • まず、CompareApi のインスタンスを作成します。
  • 次に、FileInfo のインスタンスを作成します。
  • 次に、ソース PDF ファイルのパスを設定します。
  • その後、FileInfo の別のインスタンスを作成します。
  • 次に、対象となる PDF ファイルのパスを設定します。
  • 次に、ComparisonOptions のインスタンスを作成します。
  • 次に、ソース ファイルとターゲット ファイルを割り当てます。
  • また、出力ファイルのパスも設定します。
  • その後、ComparisonOptions オブジェクトを使用して ComparisonsRequest のインスタンスを作成します。
  • 最後に、ComparisonsRequest を引数として CompareApi.comparisons() メソッドを呼び出して結果を取得します。

次のコード サンプルは、Python の REST API を使用して 2 つの PDF ファイルを比較する方法を示しています。

# このコード例は、2 つの PDF ファイルを比較する方法を示します。
# APIのインスタンスを作成する
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# 入力ソースファイル
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# 対象ファイル
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

# 比較オプションを定義する
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"

# 比較リクエストの作成
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# 比較
response = api_instance.comparisons(request)
Python の REST API を使用して 2 つの PDF ファイルを比較する

Python の REST API を使用して 2 つの PDF ファイルを比較します。

作成された PDF ファイルには、以下に示すように、ドキュメントの最後に概要ページも含まれています。

概要ページ。

削除または挿入された要素の合計を示す概要ページ。

結果のファイルをダウンロードする

上記のコード サンプルは、クラウド上に新しく作成された PDF ファイルに差分を保存します。次のコード例を使用してダウンロードできます。

# このコード例は、結果のファイルをダウンロードする方法を示しています。
# APIのインスタンスを作成する
file_api = groupdocs_comparison_cloud.FileApi.from_config(configuration)

# ダウンロードファイルリクエストの作成
request = groupdocs_comparison_cloud.DownloadFileRequest("result.pdf", my_storage)

# ダウンロードファイル
response = file_api.download_file(request)

# ダウンロードしたファイルを作業ディレクトリに移動します
shutil.move(response, "C:\\Files\\") 

Python で複数の PDF ファイルを比較する

以下の手順に従って、複数の PDF ドキュメントを比較できます。

  • まず、CompareApi のインスタンスを作成します。
  • 次に、FileInfo のインスタンスを作成し、ソース PDF ファイルのパスを設定します。
  • 次に、FileInfo の別のインスタンスを作成し、ターゲット PDF ファイルのパスを設定します。
  • その後、上記の手順を繰り返して対象ファイルを追加します。
  • 次に、ComparisonOptions のインスタンスを作成します。
  • 次に、ソース/ターゲット ファイルを割り当て、出力ファイルのパスを設定します。
  • その後、ComparisonOptions オブジェクトを使用して ComparisonsRequest のインスタンスを作成します。
  • 最後に、ComparisonsRequest を引数として CompareApi.comparisons() メソッドを呼び出して結果を取得します。

次のコード サンプルは、Python の REST API を使用して複数の PDF ファイルを比較する方法を示しています。

# このコード例は、複数の PDF ファイルを比較する方法を示しています。
# 必要なAPIインスタンスを作成する
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# ソースPDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# 対象PDF1
target1 = groupdocs_comparison_cloud.FileInfo()
target1.file_path = "target.pdf"

# ターゲットPDF 2
target2 = groupdocs_comparison_cloud.FileInfo()
target2.file_path = "target2.pdf"

# 比較オプションを定義する
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target1, target2]
options.output_path = "result.pdf"

# 比較リクエストを作成して比較する
request = groupdocs_comparison_cloud.ComparisonsRequest(options)
response = api_instance.comparisons(request)

Python での比較結果をカスタマイズする

以下の手順に従って、比較プロセスの結果で見つかった変更のスタイルをカスタマイズできます。

  • まず、CompareApi のインスタンスを作成します。
  • 次に、FileInfo のインスタンスを作成し、ソース PDF ファイルのパスを設定します。
  • 次に、FileInfo の別のインスタンスを作成し、ターゲット PDF ファイルのパスを設定します。
  • 次に、設定のインスタンスを作成します。
  • 次に、比較感度やさまざまなプロパティを設定して、アイテムのスタイルをカスタマイズします。
  • 次に、ComparisonOptions のインスタンスを作成します。
  • 次に、ソース/ターゲット ファイルを割り当て、出力ファイルのパスを設定します。
  • その後、ComparisonOptions オブジェクトを使用して ComparisonsRequest のインスタンスを作成します。
  • 最後に、ComparisonsRequest を引数として CompareApi.comparisons() メソッドを呼び出して結果を取得します。

次のコード サンプルは、Python の REST API を使用して比較結果をカスタマイズする方法を示しています。

# このコード例は、比較結果をカスタマイズする方法を示しています。
# 必要なAPIインスタンスを作成する
api_instance = groupdocs_comparison_cloud.比較Api.from_keys(client_id, client_secret)

# ソースPDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# ターゲットPDF
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

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 = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
options.settings = settings

# 比較リクエストの作成
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# 比較
response = api_instance.comparisons(request)

Python での変更リストの取得

以下の手順に従って、PDF ファイルの比較中に見つかったすべての変更のリストを取得できます。

  • まず、CompareApi のインスタンスを作成します。
  • 次に、FileInfo のインスタンスを作成し、ソース PDF ファイルのパスを設定します。
  • 次に、FileInfo の別のインスタンスを作成し、ターゲット PDF ファイルのパスを設定します。
  • 次に、ComparisonOptions のインスタンスを作成します。
  • 次に、ソース/ターゲット ファイルを割り当て、出力ファイルのパスを設定します。
  • その後、ComparisonOptions オブジェクトを使用して PostChangesRequest のインスタンスを作成します。
  • 最後に、ComparisonsRequest を引数として CompareApi.post\changes() メソッドを呼び出して結果を取得します。

次のコード サンプルは、Python の REST API を使用して変更のリストを取得する方法を示しています。

# このコード例は、すべての変更のリストを取得する方法を示しています。
# 必要なAPIインスタンスを作成する
api_instance = groupdocs_comparison_cloud.CompareApi.from_keys(client_id, client_secret)

# ソースPDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# ターゲット PDF
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

# 比較オプションを定義する
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"

# 変更後のリクエストを作成する
request = groupdocs_comparison_cloud.PostChangesRequest(options)
# 変更を投稿する
response = api_instance.post_changes(request)

# 表示の変化
for change in response:
  print("Change # " + str(change.id + 1) + "- Target Text: " + str(change.target_text) + ", Text: " + str(change.text) + ", Type: " + str(change.type));
Python での変更リストの取得

Python の変更リストを取得します。

Python でパスワードとメタデータを比較して保存する

以下の手順に従って、結果のファイルをパスワードで保護し、メタデータとともに保存できます。

  • まず、CompareApi のインスタンスを作成します。
  • 次に、FileInfo のインスタンスを作成し、ソース PDF ファイルのパスを設定します。
  • 次に、FileInfo の別のインスタンスを作成し、ターゲット PDF ファイルのパスを設定します。
  • 次に、設定のインスタンスを作成します。
  • 次に、メタデータのインスタンスを作成します。
  • その後、作成者、会社、最終保存日などのさまざまなメタデータ プロパティを設定します。
  • 次に、パスワードとパスワード\保存\オプションを設定します。
  • 次に、ComparisonOptions のインスタンスを作成します。
  • 次に、ソース/ターゲット ファイルを割り当て、出力ファイルのパスを設定します。
  • その後、ComparisonOptions オブジェクトを使用して ComparisonsRequest のインスタンスを作成します。
  • 最後に、ComparisonsRequest を引数として CompareApi.comparisons() メソッドを呼び出して結果を取得します。

次のコード サンプルは、Python の REST API を使用して、結果のファイルをパスワードとメタデータとともに保存する方法を示しています。

# このコード例は、結果のファイルをパスワードとメタデータとともに保存する方法を示しています。
# 必要なAPIインスタンスを作成する
api_instance = groupdocs_comparison_cloud.比較Api.from_keys(client_id, client_secret)

# ソースPDF
source = groupdocs_comparison_cloud.FileInfo()
source.file_path = "source.pdf"

# ターゲット PDF
target = groupdocs_comparison_cloud.FileInfo()
target.file_path = "target.pdf"

settings = groupdocs_comparison_cloud.Settings()
# メタデータの設定
settings.meta_data = groupdocs_comparison_cloud.Metadata()
settings.meta_data.author = "Tom"
settings.meta_data.company = "GroupDocs"
settings.meta_data.last_save_by = "Jack"

#Set password
settings.password_save_option = "User"
settings.password = "password"

# 比較オプションを定義する
options = groupdocs_comparison_cloud.ComparisonOptions()
options.source_file = source
options.target_files = [target]
options.output_path = "result.pdf"
options.settings = settings

# 比較リクエストの作成
request = groupdocs_comparison_cloud.ComparisonsRequest(options)

# 比較
response = api_instance.comparisons(request)

オンラインで試す

上記の API を使用して開発された、次の無料のオンライン PDF 比較ツールをお試しください。 https://products.groupdocs.app/comparison/pdf

結論

この記事では、クラウド上で PDF ドキュメントを比較する方法を学びました。また、Python で複数の PDF ファイルを比較し、変更スタイルをカスタマイズし、変更のリストを取得する方法についても説明しました。この記事では、プログラムによって複数の PDF ファイルをクラウドにアップロードし、結果のファイルをクラウドからダウンロードする方法についても説明しました。さらに、ドキュメント を使用して、GroupDocs.Comparison Cloud API について詳しく学ぶことができます。また、ブラウザーを通じて API を直接視覚化して操作できる API リファレンス セクションも提供しています。不明な点がある場合は、フォーラム でお気軽にお問い合わせください。

関連項目