0

私はこのpdfファイルを持っています。画像ベースの低解像度 PDF ファイル。その中のデータを抽出しようとしていますが、試したすべてのオプションが機能していないようです。

オプション 1 - pdfminer を使用する

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

def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, laparams=laparams)
    fp = open(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 0
    caching = True
    pagenos=set()

    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)

    text = retstr.getvalue()

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

オプション 2 - tika の使用

from tika import parser # pip install tika
raw = parser.from_file(path)
text=raw['content']
# I don't like to use it very much because it often corrupts the file

オプション 3 - pypdf を使用

    import PyPDF2
    pdf_file = open(path, 'rb')
    read_pdf = PyPDF2.PdfFileReader(pdf_file)
    number_of_pages = read_pdf.getNumPages()
    page = read_pdf.getPage(0)
    page_content = page.extractText()
    text=page_content.encode('utf-8')

すべてのオプションが空の結果を返します。ファイルの品質に関係している可能性があると思います。画像に取り組み、画像の特徴を増やしてデータ抽出を容易にすることができることを私は知っています (画像サイズを大きくしたり、しきい値で作業したりするなど、PIL で多くのことを行うことができます)。PDFファイルでもそれを行う効率的な方法はありますか?

4

2 に答える 2