「Pythonで自動化」(後編) その2
# リスト1# PDFファイルからpdfminerでテキストを抽出するテスト# 「日経ソフトウエア」2020.07# 『特集5 Pythonで自動化』p.066~p.069##(1)ライブラリの読み込みimport iofrom pdfminer.pdfinterp import PDFResourceManagerfrom pdfminer.converter import TextConverterfrom pdfminer.pdfinterp import PDFPageInterpreterfrom pdfminer.pdfpage import PDFPagefrom pdfminer.layout import LAParams#(2)必要なオブジェクトの生成stdout = io.StringIO()rscmgr = PDFResourceManager()lprms = LAParams()device = TextConverter(rscmgr, stdout, laparams=lprms)intprtr = PDFPageInterpreter(rscmgr, device)#(3)目的のPDFファイルを開く処理# PDFファイルを、第2引数の「rb」で読み取り専用、バイナリーモードで開く。# 「r」は読み込み用、「b」はバイナリーを意味する。fp = open('PDFtest1.pdf', 'rb')#(4)実際にテキストを抽出している処理for page in PDFPage.get_pages(fp): #(5)変数「page」のページの中からテキストを抽出する処理の本体 # 実行すると変数「page」のページ内のテキストがテキストストリーム(変数「stdout」)に出力される。 intprtr.process_page(page)#(6)テキストストリームの内容を取得する処理# テキストストリームの内容が戻り値として得られるので、変数「text」に格納text = stdout.getvalue()print(text)#(7)テキストストリーム、TextConverterオブジェクト、PDFファイルを閉じる処理# 閉じ忘れると次回実行時にエラーが出るので、注意!stdout.close()device.close()fp.close()