【发布时间】:2021-01-01 03:49:54
【问题描述】:
我需要使用python提取pdf文本,但是pdfminer和其他人太大而无法使用,但是在使用简单的“with open xxx as xxx”方法时,我遇到了一个问题,内容部分没有正确提取。文本看起来像字节,因为它以 b' 开头。我的代码和结果截图:
with open(r"C:\Users\admin\Desktop\aaa.pdf","rb") as file:
aa=file.readlines()
for a in aa:
print(a)
【问题讨论】:
-
你仍然需要解码 pdf..
-
如果没有你提到的 pdf 阅读库,我认为你做不到
-
PDF 不是纯文本。这就是存在库来解码它们的原因。
open可以从文件中读取/写入字节,而不是对其看到的数据执行任何实际解码或编码。 -
“pdfminer 和其他软件太大而无法使用” - 你有没有想过它们这么大是有原因的?本质上它们是如此之大,因为您需要大量代码来提取足够的文本。特别是提取中文文本;对于带有英文文本的简单 pdf,有一些在良性情况下工作的排序削减,但对于 CJK 文本,你不应该期望这样的捷径。
-
如果您想尝试自己实现文本提取,请获取 ISO 32000-1 或 ISO 32000-2 的副本(Google for pdf32000 可免费获得前者的副本)并研究该 pdf 规范。基于这些信息,您可以逐步学习将这些二进制字符串解析为 pdf 对象,在其中找到内容流,解析这些内容流中的指令,并检索这些指令绘制的文本。
标签: python pdf text-extraction