本記事は古い内容です。
下記の記事が最新の内容を反映しているので参考にしてください。
https://www.tech-tech.xyz/archives/python-pdf.html
目次
PythonでPDFから文字抽出
PDFをPythonで利用する場合pdfminerが便利
Pythonでpdfから文字列を抽出する場合pdfminerを使いましょう。
pdfminerとは?
pdfminerはPythonでPDFのテキストの抽出、解析を行うライブラリです。
Pythonで書かれていてオープンソースとして公開されています。
pdfminerをPythonにインストール
ソースのダウンロード
git clone https://github.com/euske/pdfminer/
pdfminerのソースをダウンロードしましょう。
gitが入ってない人は下記のリンクへ飛んで”Clone or download”をクリック→”Download ZIP”でソースをダウンロードしましょう。
pdfminerのソース
cd pdfminer
文字コードの読み込み
LinuxまたはMacの場合
make cmap
Windowsの場合
mkdir pdfminer\cmap
python tools\conv_cmap.py -c RKSJ=cp932 -c EUC=euc-jp -c UniJIS-UTF8=utf-8 pdfminer\cmap Adobe-Japan1 cmaprsrc\cid2code_Adobe_Japan1.txt
pdfminerのインストール
python setup.py install
サンプルコード
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
input_path = "input.pdf"
output_path = "result.txt"
rsrcmgr = PDFResourceManager()
codec = 'utf-8'
params = LAParams()
params.detect_vertical = True
with file(output_path, "wb") as output:
device = TextConverter(rsrcmgr, output, codec=codec, laparams=params)
with file(input_path, 'rb') as input:
interpreter = PDFPageInterpreter(rsrcmgr, device)
for page in PDFPage.get_pages(input):
interpreter.process_page(page)
device.close()