我正在尝试从通常需要在工作中处理的pdf文件中提取文本,以便可以将其自动化。
使用PyPDF2时,例如它适用于我的简历,但不适用于我的工作文档。问题是文本是这样的:“ Helloworldthisisthetext”。然后,我尝试使用.join(“”),但这不起作用。
我了解到这是PyPDF2的一个已知问题-它似乎取决于pdf的构建方式。
有人知道另一种方法如何从其中提取文本,然后我可以将其用于进一步的步骤?
提前谢谢
答案 0 :(得分:0)
我建议您尝试其他工具-pdfreader。您可以提取纯字符串和“ PDF markdown”(解码的文本字符串+运算符)。 “ PDF markdown”可以解析为常规文本(例如,带有正则表达式)。
下面您将找到步行页面和提取PDF内容以进行进一步分析的代码示例。
from pdfreader import SimplePDFViewer, PageDoesNotExist
fd = open(your_pdf_file_name, "rb")
viewer = SimplePDFViewer(fd)
try:
while True:
viewer.render()
pdf_markdown = viewer.canvas.text_content
result = my_text_parser(pdf_markdown)
# The one below will probably be the same as PyPDF2 returns
plain_text += "".join(viewer.canvas.strings)
viewer.next()
except PageDoesNotExist:
pass
...
def my_text_parser(text):
""" Code your parser here """
...
pdf_markdown 变量包含所有文本,包括PDF命令(定位,显示):所有字符串都放在方括号中,后跟 Tj 或 TJ 运算符。 有关PDF文本运算符的更多信息,请参见PDF 1.7 sec. 9.4 Text Objects
例如,您可以使用正则表达式对其进行解析。
答案 1 :(得分:0)
在工作中,我有一个类似的要求,我使用了PyMuPDF。他们还提供了一些食谱,涵盖了文本提取的典型方案。