我正在尝试使用 pdfminer。我找到了一个代码片段,我想在进一步检查之前尝试一下。此代码的目标是从 .pdf 中提取文本并将其存储在 str 对象中。它工作得很好,它从 pdf 文档中提取文本,当我尝试打印 str 时出现问题。它什么也不打印。
str 确实包含文本,print(text[0:10])例如,我可以打印其中的一部分。它还将打印整个内容,print(text[0:len(s)-1])我也可以将其写入文件而不会出现任何问题。
只有该print()功能不能单独工作。它是带有 utf-8 编码的标准 str 。
当我将 .pdf 的内容写入字节对象,然后将其转换为 str 时,我得到了相同的结果。虽然 python 可以毫无问题地打印字节对象。
这也不是 IDE 问题,我在 Spyder 和 VS Code 中都得到了相同的结果。
任何建议都会受到欢迎。
这是我使用的代码(如果我尝试打印变量 s,没有任何反应):
import io
from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfpage import PDFPage
def extract_text_from_pdf(pdf_path):
resource_manager = PDFResourceManager()
fake_file_handle = io.StringIO()
converter = TextConverter(resource_manager, fake_file_handle)
page_interpreter = PDFPageInterpreter(resource_manager, converter)
with open(pdf_path, 'rb') as fh:
for page in PDFPage.get_pages(fh,
caching=True,
check_extractable=True):
page_interpreter.process_page(page)
text = fake_file_handle.getvalue()
converter.close()
fake_file_handle.close()
if text:
return text
if __name__ == '__main__':
s = extract_text_from_pdf('mypdf.pdf')
森林海
相关分类