web-dev-qa-db-ja.com

pythonスクリプトと外部コマンドラインでpdfminer.sixのpdf2txt.pyを使用するには?

コマンドラインでpdfminer.sixのpdf2txt.pyツールを使用する方法を知っています。ただし、txtファイルに変換する多くのPDFファイルがあり、コマンドラインで1つずつ実行することはできません。実際にこのツールを使用する方法は見つかりませんでした。 python script。任意のアイデア?

5
Ashley Liu

良いニュースは、PDFMinerライブラリを使用して、コマンドラインでpdf2textを使用して実行する可能性のある属性/コマンドを再作成できることです。私が使用する基本的な例については、以下を参照してください。

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import BytesIO

def pdf_to_text(path):
    manager = PDFResourceManager()
    retstr = BytesIO()
    layout = LAParams(all_texts=True)
    device = TextConverter(manager, retstr, laparams=layout)
    filepath = open(path, 'rb')
    interpreter = PDFPageInterpreter(manager, device)

    for page in PDFPage.get_pages(filepath, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue()

    filepath.close()
    device.close()
    retstr.close()
    return text


if __name__ == "__main__":
    text = pdf_to_text("yourfile.pdf")
    print(text)

ページ番号またはパスワードを適用する必要がある場合、これらはPDFPage.get_pagesのオプションのパラメーターです。同様に、all-textsやmargin-sizeなどのレイアウト変更を行う必要がある場合、LAParams初期化子にはオプションの属性があります

8
pseudoku