1. ホーム
  2. python

pdfminerをライブラリとして使うには?

2023-12-17 21:30:17

質問

私は、pdfからテキストデータを取得しようとしています。 pdfminer . 私はpdfminerのコマンドラインツールpdf2txt.pyを使って、このデータを.txtファイルにうまく抽出することができます。 現在、私はこれを行い、その後、pythonスクリプトを使って.txtファイルをクリーンアップしています。 私は、pdf抽出プロセスをスクリプトに組み込んで、自分自身のステップを節約したいと思います。

このリンクを見つけたとき、私は何かを掴んだと思いました。 を見つけたとき、何かあると思ったのですが、どの解決策も成功しませんでした。 おそらく、私が新しいバージョンの pdfminer を使用しているため、そこに記載されている関数は再度更新する必要があるのでしょう。

ここに示されている関数も試しましたが、これもうまくいきませんでした。

もうひとつの方法として、スクリプトの中でスクリプトを呼び出すために os.system . これもうまくいきませんでした。

Pythonバージョン2.7.1、pdfminerバージョン20110227を使用しています。

どのように解決するのですか?

以下は、私が最終的に作成した、私のために動作するクリーンアップされたバージョンです。以下は、単にPDFの中の文字列を、そのファイル名を指定して返すだけです。私は、これが誰かの時間を節約することを願っています。

from pdfminer.pdfinterp import PDFResourceManager, process_pdf
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from cStringIO import StringIO

def convert_pdf(path):

    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)

    fp = file(path, 'rb')
    process_pdf(rsrcmgr, device, fp)
    fp.close()
    device.close()

    str = retstr.getvalue()
    retstr.close()
    return str

この解決策は 2013年11月のAPI変更 .