🌟

pythonでPDFをバイナリーで結合する方法

2023/08/12に公開

Pythonでバイナリー形式のPDFファイルとローカルのPDFファイルを結合する方法

画像やテキストなどの情報を含むPDFファイルは、重要な文書を扱う際に広く使用されます。特定の状況では、WebからAPI等でダウンロードしたバイナリー形式のPDFファイルとローカルにあるPDFファイルを結合させる必要が生じることがあります。この記事では、PythonのPyPDF2base64モジュールを使用して、バイナリー形式のPDFファイルとローカルのPDFファイルを効果的に結合する方法を詳しく解説します。

コードの意味と使い方

以下のコードは、ダウンロードしたバイナリー形式のPDFファイルとローカルのPDFファイルを結合する方法を示しています。

import base64
import PyPDF2
from io import BytesIO
from typing import BinaryIO

# ダウンロードしたバイナリー形式のPDFデータ
res_base64_pdf = "WebなどからダウンロードしたバイナリーのPDF"

# 結合させたいローカルにあるPDF
local_pdf_path = './test.pdf'
bin_local_pdf: BinaryIO = open(local_pdf_path, "rb")

# ダウンロードしたバイナリーのPDFをバイト形式に変換
byte_download_pdf: BytesIO = BytesIO(base64.b64decode(res_base64_pdf.encode()))

# PdfFileMergerオブジェクトの取得
mgr = PyPDF2.PdfFileMerger()

# ダウンロードしたPDFとローカルのPDFを結合
mgr.append(byte_download_pdf)
mgr.append(bin_local_pdf)

# 新しいPDFファイルを作成し、バイナリーモードで書き込む
with open("joined.pdf", "wb") as new:
    mgr.write(new)

# ファイルを閉じる
bin_local_pdf.close()

コードの詳細解説

  1. ダウンロードしたバイナリー形式のPDFデータを、res_base64_pdfとして設定します。
  2. 結合させたいローカルにあるPDFファイルのパスをlocal_pdf_pathとして設定します。
  3. bin_local_pdf変数を使用して、ローカルのPDFファイルをバイナリーモードで開きます。
  4. ダウンロードしたバイナリー形式のPDFデータをバイト形式に変換し、byte_download_pdf変数に格納します。
  5. PyPDF2.PdfFileMerger()を使用して、PdfFileMergerオブジェクトを作成します。
  6. mgr.append()メソッドを使用して、バイナリー形式のダウンロードPDFとローカルのPDFを結合させます。
  7. with open("joined.pdf", "wb") as new:で新しいPDFファイルをバイナリーモードで作成し、書き込みます。
  8. 最後に、bin_local_pdfを閉じてファイルを正しく扱います。

まとめ

PythonのPyPDF2base64モジュールを駆使して、バイナリー形式のPDFファイルとローカルのPDFファイルを結合する方法を詳しく解説しました。これによって、WebからダウンロードしたPDFとローカルのPDFを効率的に結合できるようになります。プロジェクトに合わせてこの方法を活用して、PDFファイルの結合をスムーズに行いましょう!

公式ドキュメント:

Discussion