PDFからテキストを抽出する

pdfminer.six でPDF内のテキストを抽出できます。
pdfminer.six のインストールは以下。

pip install pdfminer.six

pdfminer.six をインストールすると pdf2txt.py というPythonプログラムがインストールされるので、これを利用します。

厚生労働省にある「歯の健康」というPDFからテキストを抽出してみました。

python /anaconda3/bin/pdf2txt.py b6.pdf -p 2

1.はじめに
う蝕及び歯周病に代表される歯科疾患は、その発病、進行により欠損や障害が蓄積し、
その結果として歯の喪失に繋がるため、食生活や社会生活等に支障をきたし、ひいては、
全身の健康に影響を与えるものとされている。また、歯及び口腔の健康を保つことは、単に
食物を咀嚼するという点からだけでなく、食事や会話を楽しむなど、豊かな人生を送るため
の基礎となるものである。
これら口腔と全身の健康の関係を実証的データとしても明らかにしていくため、平成8年
より厚生科学研究「口腔保健と全身的な健康状態の関係に関する研究」が実施されており、
80歳高齢者を対象とした統計分析等から、歯の喪失が少なく、よく噛めている者は生活の
質および活動能力が高く、運動・視聴覚機能に優れていることが明らかになっている。また、
要介護者における調査においても、口腔衛生状態の改善や、咀嚼能力の改善を図ること
が、誤嚥性肺炎の減少や、ADLの改善に有効であることが示されている1)。
従来の歯科保健対策は、小児期におけるう蝕予防対策を中心として実施されてきており、
その結果、乳歯のう蝕は明らかに減少かつ軽症化の傾向を示し、永久歯の一人平均う歯
(むし歯)数も、20歳頃まで減少傾向が認められるなど着実に成果が上がってきているとい
える。
しかし、13歳でう蝕有病者率が90%を越え、55~64歳で歯周病の有病者率が82.5%と
なるなど、依然、歯科疾患の有病状況はう蝕、歯周病ともに他の疾患に類を見ないほど高
率を示している。また、咀嚼能力に直接的な影響を与える歯の喪失状況についても、60歳
代で半分(14歯)の歯を失い、80歳代では約半数の人がすべての歯を喪失している2)など、
国民の保健上から依然として大きな課題である。
6−1

上記の例は b6.pdf の2ページ目を抽出したものです。

これらをプログラムから利用するならこんな感じでしょうか。

import subprocess
  
result = subprocess.Popen('python /anaconda3/bin/pdf2txt.py b6.pdf -p 2', stdout=subprocess.PIPE, shell=True).stdout.readlines()
for line in result:
    print(line.decode('utf-8'))