Python - PyPDF2错过了大量的文本。 Windows上的任何替代方案?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python - PyPDF2错过了大量的文本。 Windows上的任何替代方案?相关的知识,希望对你有一定的参考价值。

我试图用PyPDF2解析一个pdf文件,但我只检索了大约10%的文本。对于剩余的90%,pyPDF2仅带回换行...有点令人沮丧。

你知道在Windows上运行Python的任何替代方案吗?我听说过pdftotext,但似乎我无法安装它,因为我的电脑不能在Linux上运行。

任何的想法?

import PyPDF2

filename = 'Doc.pdf'
pdf_file = PyPDF2.PdfFileReader(open(filename, 'rb'))

print(pdf_file.getPage(0).extractText())
答案

试试PyMuPDF。以下示例只打印出找到的文本。该库还允许您获取文本的位置,如果这将有助于您。

#!python3.6
import json

import fitz  # http://pymupdf.readthedocs.io/en/latest/


pdf = fitz.open('2018-04-17-CP-Chiffre-d-affaires-T1-2018.pdf')
for page_index in range(pdf.pageCount):
    text = json.loads(pdf.getPageText(page_index, output='json'))
    for block in text['blocks']:
        if 'lines' not in block:
            # Skip blocks without text
            continue
        for line in block['lines']:
            for span in line['spans']:
                print(span['text'].encode('utf-8'))
pdf.close()

以上是关于Python - PyPDF2错过了大量的文本。 Windows上的任何替代方案?的主要内容,如果未能解决你的问题,请参考以下文章

用python操作PDF文件

在windows下安装PyPdf2

用python操作PDF文件

Python应用PDF处理-pypdf2

从 pdf 中提取文本 - PyPDF2

pdf及word文档的读取 pyPDF2,docx