python - 如何使用 Python 从 pdf 中提取文本?

标签 python pdf text pdfminer

def extract_pdf(pdf_path):                     
    with open(pdf_path, 'rb') as fh:
    # iterate over all pages of PDF document
    for page in PDFPage.get_pages(fh, caching=True, check_extractable=True):
        # creating a resoure manager
        resource_manager = PDFResourceManager()

        # create a file handle
        fake_file_handle = StringIO()

        # creating a text converter object
        converter = TextConverter(
                            resource_manager, 
                            fake_file_handle, 
                            codec='utf-8', 
                            laparams=LAParams()
                    )

        # creating a page interpreter
        page_interpreter = PDFPageInterpreter(
                            resource_manager, 
                            converter
                        )

        # process current page
        page_interpreter.process_page(page)

        # extract text
        text = fake_file_handle.getvalue()
        yield text

        # close open handles
        converter.close()
        fake_file_handle.close()

text = ''
for page in extract_pdf('Path of the PDF Document'): 
    text +=  page

通过这段代码,我能够提取许多PDF文档。但是当我在互联网上的其他随机 PDF 上测试它时,它开始波动,然后提取的文本不作为输出存在。当我检查文本类型时,它显示 <class 'str'>

有人可以纠正我在编写这段代码时忽略的任何此类错误吗?

最佳答案

import PyPDF2 
o = open('example.pdf', 'rb') 
r = PyPDF2.PdfFileReader(o)
for page in range(r.numPages):
    Obj = r.getPage(page)
    print Obj.extractText()

关于python - 如何使用 Python 从 pdf 中提取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58096641/

相关文章:

python - 为什么查询 MySQL 数据库的 "user is taken"方法会传递不可变字典?

python - 如何在 Python 中编写缓存函数或等效函数?

ios - 将目录从一个 PDF 复制到另一个

java - iText 7 - 将 PDF 图层 (OCG) 与基础 PDF 合并

文本列上的 SQL INNER JOIN

python - 类型错误:** 或 pow() 不支持的操作数类型: 'list' 和 'int'

python库将.wav与麦克风输入进行比较?

c# - 使用 pdfSharp 展平 AcroForm 以减小文件大小

javascript - 如何使用 node.js 为文本文件的每一行创建一个数组条目

PHP - 在 MySQL 数据库中存储文本