PDF は、テキストを共有するための一般的な方法です。 PDF は Portable Document Format の略で、.pdf というファイル拡張子を使用します。 これは、1990 年代初頭に Adobe Systems によって作成されました。

Python を使用して PDF ドキュメントを読み取ることは、さまざまなタスクを自動化するために役立ちます。

このチュートリアルでは、Python で PDF ファイルからテキストを抽出する方法について学びます。

さっそくはじめましょう。

PythonでPDFファイルからテキストを読み取り、抽出する

このチュートリアルの目的のために、2ページのサンプルPDFを作成します。 Microsoft WordやGoogle Docsなどのワープロを使ってそうし、ファイルをPDFとして保存します。

1ページのテキスト:

Hello World. This is a sample PDF with 2 pages. This is the first page. 

2ページのテキスト:

This is the text on Page 2. 

Using PyPDF2 to Extract PDF Text

PDFからテキストを取り出すにはPyPDF2を使って行うことが出来ます。 どのように動作するか見てみましょう。

1.パッケージのインストール

PyPDF2をシステムにインストールするには、ターミナルで次のコマンドを入力します。 pipパッケージマネージャについてはこちらをご覧ください。

pip install pypdf2
Pypdf
Pypdf

2.Import PyPDF2

新しいPython notebookを開いてPYPDF2インポートから始めましょう。

import PyPDF2

3.バイナリモードでPDFを開く

次のコードの行を使ってバイナリモードでPDFを開くことから始めます:

pdf = open('sample_pdf.pdf', 'rb')

これはPDF用のPdfFileReaderオブジェクトを作って変数 ‘pdf’ に格納します. PyPDF2.PdfFileReader()を使ってテキストを読む

ここで、PyPDF2のPdfFileReader()メソッドを使ってファイルを読み込むことができるようになりました。

pdfReader = PyPDF2.PdfFileReader(pdf)

PDFの最初のページからテキストを取得するには、次のコード行を使用します:

page_one = pdfReader.getPage(0)print(page_one.extractText())

我々は次の出力を得ます:

Hello World. !This is a sample PDF with 2 pages. !This is the first page. !Process finished with exit code 0

ここで我々はページをオブジェクトとして格納するgetPageメソッドを使用しています。 次に、extractText() メソッドを使用して、ページオブジェクトからテキストを取得しました。

取得したテキストはString型です。

同様に、PDFから2ページ目を取得するために使用します。

page_one = pdfReader.getPage(1)print(page_one.extractText())

私たちは次のような出力を得ます。

This is the text on Page 2. 

Complete Code to Read PDF Text using PyPDF2

このセクションの完全なコードは次のとおりです:

import PyPDF2pdf = open('sample_pdf.pdf', 'rb')pdfReader = PyPDF2.PdfFileReader(pdf)page_one = pdfReader.getPage(0)print(page_one.extractText())

上の出力で、最初のページのフォーマットが少しずれていることに気づいた場合。 これは、PyPDF2 が PDF を読むのにあまり効率的でないためです。

幸運なことに、Python には PyPDF2 に代わるより良いものがあります。 次はそれについて見ていきます。

PDFplumber を使用してテキストを抽出する

PDFplumber は、PDF からテキストを抽出できるもう 1 つのツールです。

1.パッケージのインストール

さっそくPDFplumberをインストールしてみましょう。

pip install pdfplumber
Pdfplumber
Pdfplumber

2.Import pdfplumber

次のコード行を使ってPDFplumberをインポートから始めます :

import pdfplumber

3.Import pdfplumber

1. PDFplumberを使ってPDFを読む

次のコード片を使ってPDFplumberを使ってPDFを読み始めることができます:

with pdfplumber.open("sample_pdf.pdf") as pdf: first_page = pdf.pages print(first_page.extract_text())

これはPDFの最初のページからテキストを取得します。 出力は次のようになります:

Hello World. This is a sample PDF with 2 pages. This is the first page. Process finished with exit code 0

これをPyPDF2の出力と比較して、書式設定に関してPDFplumberがいかに優れているかを確認することができます。

PDFplumber には、PDF から他の情報を取得するオプションも用意されています。

たとえば、ページ番号を取得するために .page_number を使用することができます。

print(first_page.page_number)

Output :

です。

コメントを残す

メールアドレスが公開されることはありません。