我正在使用PyMuPDF从PDF中提取块单元的文本。在许多情况下,“块”似乎只是缺省为换行符分隔的单位,而不是逻辑段落。
import fitz
doc = fitz.open("example.pdf")
blocks = [x[4] for x in doc[0].getText("blocks")]
print(blocks)
(可以在here上找到example.pdf)
如果不是因为Mac的bog标准预览应用程序的直接复制/粘贴,漂亮地保留了段落,我可以接受这一点。预览正在做什么,而PyMuPDF不是?我的管道的其余部分几乎都被锁定在PyMuPDF中,所以我不能真正使用预览进行提取。
发布于 2020-11-12 20:59:34
我希望有一种方法可以调用Preview使用的引擎。它比我在Python中找到的任何东西都要好。但是为了回答您的问题,在我看来,PyMuPDF会在段落之间插入一个包含单个空格(' '
)的字符串。
例如,在第一段和第二段之间,您有:
...ontspannen. ', ' ', 'Kunnen...
您可以使用换行符('\n'
)替换所有单个空格字符串,如下所示:
for i in range(len(blocks)):
if blocks[i] == ' ':
blocks[i] = '\n'
由于每行文本都作为单独的字符串返回,因此您可能还希望将构成段落的字符串连接起来。
https://stackoverflow.com/questions/64709541
复制相似问题