こんにちは、Kosei(@kay_diacc2)です!
目次
事前準備
Pythonでは「tabula」というPDF内のテーブル情報を抽出できるモジュールがあります。今回はそれを用いてPDFからテーブルテキストを抽出します。
PDFファイルは、サンプルとしてこちらのファイルを用います。ダウンロードして利用してみましょう。
Java
今回はpythonライブラリに加えてJavaの実行環境が必要となります。
tabula
PDFのテーブルテキストを抽出するためのPythonモジュールとして、tabulaモジュールも事前にインストールが必要です。コマンドラインから下記を実行し、インストールしておきましょう。
pip install tabula-py
Pythonを用いたPDFのテーブルテキスト取得
それでは実際にPythonを活用してプログラムを記述していきましょう!コード自体は非常にシンプルに記述できます。
import tabula
# PDFファイル
pdf_file = "sample.pdf"
# テキストテーブル取得
df = tabula.read_pdf(pdf_file)
dfを出力すると、下記のような結果が得られます。
# 出力結果
# [ 田中 90 78 67 21 256
# 0 佐藤 69 77 66 23 235
# 1 鈴木 99 70 54 46 269
# 2 山本 49 86 89 77 301
# 3 石田 59 40 82 86 267
# 4 太田 69 90 75 63 297
# 5 工藤 82 100 100 97 379]
引数
tabula.read_pdf()メソッドを利用する際、第二引数以降に下記を用いると、お好みの出力形式でテーブルテキストが取得できます。以下代表的なものを示します。
スクロールできます
引数 | 概要 | デフォルト値 |
---|---|---|
pages | 抽出するページを指定(1,2,3,all) | pages=1 |
guess | ページ毎に分析する部分を変更するかどうか(True/False) | guess=True |
area | ページの分析部分指定(entire,top,left,right,bottom) | area=”entire” |
lattice | Excelシートのように格子区切りがPDF内にある場合、それを強制的に抽出(True/False) | lattice=False |
stream | ストリームモードでPDFを強制抽出 | stream=False |
password | PDFが暗号化されている場合、パスワードを渡す | – |
その他にも引数を詳しくみたい場合は公式ドキュメントをご確認ください。