PyPDF2は、Pythonを使用してPDFファイルを操作するための強力なライブラリです。PDFファイルの読み込み、ページの抽出、マージ、分割、テキスト抽出など、さまざまな操作が可能です。以下に、PyPDF2の基本的な使い方と具体的な例を紹介します。
PyPDF2の基本機能
PDFの読み込み
PDFファイルを読み込んで操作するための基本的な機能です。
ページの抽出
PDFファイル内の特定のページを抽出して操作することができます。
PDFのマージ
複数のPDFファイルを一つに結合する機能です。
PDFの分割
一つのPDFファイルを複数のファイルに分割する機能です。
テキスト抽出
PDFファイルからテキストを抽出する機能です。
例題1: PDFファイルの読み込みとページ数の取得
まず、PDFファイルを読み込み、そのページ数を取得する基本的な例を示します。
PyPDF2のインストール
pip install PyPDF2
PDFファイルの読み込みとページ数の取得
import PyPDF2
# PDFファイルのパス
pdf_path = 'sample.pdf'
# PDFファイルを読み込む
with open(pdf_path, 'rb') as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
# ページ数を取得
num_pages = len(pdf_reader.pages)
print(f'Number of pages: {num_pages}')
このコードでは、PyPDF2.PdfReader
を使用してPDFファイルを読み込み、pages
プロパティを使用してページ数を取得しています。
例題2: 特定のページの抽出と保存
次に、PDFファイルから特定のページを抽出して新しいPDFファイルとして保存する例を示します。
import PyPDF2
# PDFファイルのパス
pdf_path = 'sample.pdf'
output_path = 'extracted_page.pdf'
# PDFファイルを読み込む
with open(pdf_path, 'rb') as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
# 新しいPDFファイルを作成
pdf_writer = PyPDF2.PdfWriter()
# 2ページ目(インデックス1)を抽出
page = pdf_reader.pages[1]
pdf_writer.add_page(page)
# 抽出したページを新しいPDFファイルに書き込む
with open(output_path, 'wb') as output_pdf:
pdf_writer.write(output_pdf)
print(f'Extracted page saved as {output_path}')
このコードでは、PdfReader
を使用してPDFファイルを読み込み、特定のページ(インデックス1)をPdfWriter
に追加し、新しいPDFファイルとして保存しています。
例題3: 複数のPDFファイルのマージ
複数のPDFファイルを一つに結合する方法を示します。
import PyPDF2
# PDFファイルのパス
pdf_paths = ['sample1.pdf', 'sample2.pdf']
output_path = 'merged.pdf'
# 新しいPDFファイルを作成
pdf_writer = PyPDF2.PdfWriter()
# 各PDFファイルを読み込み、ページを追加
for pdf_path in pdf_paths:
with open(pdf_path, 'rb') as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
for page in pdf_reader.pages:
pdf_writer.add_page(page)
# 結合したPDFファイルを保存
with open(output_path, 'wb') as output_pdf:
pdf_writer.write(output_pdf)
print(f'Merged PDF saved as {output_path}')
このコードでは、複数のPDFファイルを読み込み、各ファイルのすべてのページをPdfWriter
に追加し、新しいPDFファイルとして保存しています。
例題4: PDFファイルからテキストの抽出
PDFファイルからテキストを抽出する方法を示します。
import PyPDF2
# PDFファイルのパス
pdf_path = 'sample.pdf'
# PDFファイルを読み込む
with open(pdf_path, 'rb') as pdf_file:
pdf_reader = PyPDF2.PdfReader(pdf_file)
# 全ページからテキストを抽出
for page_num in range(len(pdf_reader.pages)):
page = pdf_reader.pages[page_num]
text = page.extract_text()
print(f'Page {page_num + 1}:\n{text}\n')
このコードでは、PDFファイルのすべてのページからテキストを抽出し、各ページごとに表示しています。
結論
PyPDF2は、Pythonを使用してPDFファイルを操作するための非常に便利なライブラリです。PDFファイルの読み込み、ページの抽出、マージ、分割、テキスト抽出など、多様な操作が可能であり、データ処理やレポート作成の効率化に大いに役立ちます。基本的な操作から高度な操作まで、PyPDF2の理解と適用は、PDFファイルを扱う多くのプロジェクトにおいて非常に有用です。