PDF から特定のページを抽出する

PDF ドキュメントから特定のページを抽出する必要がある場合や、大きな PDF ドキュメントを小さな部分に分割する必要がある場合があります。 Python 開発者は、プログラムでページ番号またはページ範囲によって PDF ドキュメントから特定のページを簡単に抽出できます。この記事では、Python の REST API を使用して PDF ドキュメントから特定のページを抽出する方法を学習します。

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

ドキュメント スプリッター REST API および Python SDK

PDF ドキュメントからページを抽出するには、GroupDocs.Merger Cloud の Python SDK API を使用します。これは、複数のドキュメントを 1 つのドキュメントに結合するために使用される、機能が豊富で高性能な Cloud SDK です。また、単一のドキュメントを複数のドキュメントに分割することもできます。 SDK は、ページ全体または任意の範囲のページの削除、交換、回転、またはページの方向の変更、および PDF、Word、Powerpoint, Excel ワークシートなどのサポートされているファイル形式に対するその他の操作を簡単に実行する機能を提供します。現在、クラウド API の ドキュメント マージ ファミリー メンバー として、.NET、Java、PHP、Ruby、Android、および Node.js SDK も提供しています。

コンソールで次のコマンドを使用して、GroupDocs.Merger-Cloud を Python プロジェクトにインストールできます。

pip install groupdocs_merger_cloud

手順と利用可能なコード例を開始する前に、ダッシュボード からクライアント ID とクライアント シークレットを取得してください。 ID とシークレットを取得したら、以下に示すようにコードを追加します。

client_id = "da0c487d-c1c0-45ae-b7bf-43eaf53c5ad5"
client_secret = "479db2b01dcb93a3d4d20efb16dea971"

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

Python の REST API を使用して PDF から特定のページを抽出する

以下の簡単な手順に従って、PDF ドキュメントから特定のページを抽出できます。

  1. PDFファイルをクラウドにアップロード
  2. アップロードしたPDFファイルからページ番号で特定のページを抽出
  3. 解凍したファイルをダウンロード

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

まず、以下のコード例を使用して、複数ページの PDF ドキュメントをクラウドにアップロードします。

# APIのインスタンスを作成する
file_api = groupdocs_merger_cloud.FileApi.from_config(configuration)
my_storage = ""

# サンプルファイルをアップロードする
request = groupdocs_merger_cloud.UploadFileRequest("ten-pages.pdf", "C:\\Files\\ten-pages.pdf", my_storage)
response = file_api.upload_file(request)

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

Python を使用してページ番号で特定のページを抽出する

PDF ドキュメントから特定のページまたは複数のページをプログラムで抽出するには、以下の手順に従ってください。

  • ドキュメント API インスタンスを作成する
  • SplitOptions を提供する
  • 入力ファイルのパスを設定する
  • 出力ディレクトリのパスを設定する
  • 抽出するページ番号をカンマ区切りで指定します
  • モードをページに設定します
  • SplitRequestの作成
  • DocumentApi.split() メソッドを呼び出して結果を取得します

次のコード例は、REST API を使用して PDF ドキュメントから特定のページ番号を指定してページを抽出する方法を示しています。

# APIの初期化
documentApi = groupdocs_merger_cloud.DocumentApi.from_config(configuration)

# 分割オプションを定義する
options = groupdocs_merger_cloud.SplitOptions()
options.file_info = groupdocs_merger_cloud.FileInfo("ten-pages.pdf")
options.output_path = "Output"
options.pages = [1, 3]
options.mode = "Pages"

# 分割リクエストを作成する
split_request = groupdocs_merger_cloud.SplitRequest(options)
result = documentApi.split(split_request)        

print("Documents count = " + str(len(result.documents)))
Python を使用して PDF から特定のページを抽出する

Python を使用して PDF から特定のページを抽出する

抽出したページファイルをダウンロードする

上記のコード サンプルは、抽出されたページを別の PDF ファイルとしてクラウド上に保存します。次のコード サンプルを使用してダウンロードできます。

# APIの初期化
file_api = groupdocs_merger_cloud.FileApi.from_config(configuration)
my_storage = ""

# ファイルのダウンロードリクエスト
request = groupdocs_merger_cloud.DownloadFileRequest("Output\\ten-pages_1.pdf", my_storage)
response = file_api.download_file(request)

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

Python を使用してページ範囲ごとにページを抽出する

プログラムでページ範囲を指定して PDF ドキュメントからページを抽出するには、以下の手順に従ってください。

  • ドキュメント API インスタンスを作成する
  • SplitOptions を提供する
  • 入力ファイルのパスを設定する
  • 出力ディレクトリのパスを設定する
  • 抽出する開始ページ番号と終了ページ番号を設定してページ範囲を指定します
  • モードをページに設定します
  • SplitRequestの作成
  • DocumentApi.split() メソッドを呼び出して結果を取得します
  • DownloadFileRequest の作成
  • FileApi.download\file() メソッドを呼び出してファイルをダウンロードします。

次のコード例は、REST API を使用して PDF ドキュメントからページ範囲を指定してページを抽出する方法を示しています。前述の手順に従ってファイルをアップロードしてください。

# APIの初期化
documentApi = groupdocs_merger_cloud.DocumentApi.from_config(configuration)
file_api = groupdocs_merger_cloud.FileApi.from_config(configuration)
my_storage = ""

# 分割オプションを定義する
options = groupdocs_merger_cloud.SplitOptions()
options.file_info = groupdocs_merger_cloud.FileInfo("ten-pages.pdf")
options.output_path = "Output"
options.start_page_number = 4
options.end_page_number = 7
options.mode = "Pages"

# 分割リクエストを作成する
split_request = groupdocs_merger_cloud.SplitRequest(options)
result = documentApi.split(split_request)   

print("Documents count = " + str(len(result.documents)))

# 結果を表示し、ファイルを 1 つずつダウンロードする
for data in result.documents:
    print("Document Url = " + str(data))
    
    # ダウンロードファイルリクエストの作成
    request = groupdocs_merger_cloud.DownloadFileRequest(data.path, my_storage)
    response = file_api.download_file(request)
    
    # ダウンロードしたファイルを作業ディレクトリに移動します
    shutil.move(response, "C:\\Files\\")
Python を使用してページ範囲ごとにページを抽出する

Python を使用してページ範囲ごとにページを抽出する

オンラインで試す

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

結論

この記事では、Python を使用してクラウド上の PDF ドキュメントから特定のページを抽出する方法を学習しました。また、プログラムによって PDF ファイルをクラウドにアップロードし、抽出されたファイルをクラウドからダウンロードする方法も学習しました。 GroupDocs.Merger Cloud API の詳細については、ドキュメント を使用して学習できます。また、ブラウザーを通じて直接 API を視覚化し操作できるようにする API リファレンス セクションも提供しています。不明な点がある場合は、フォーラム でお気軽にお問い合わせください。

関連項目