0

我正在使用 PyMuPDF 从块单元的 PDF 中提取文本。在许多情况下,“块”似乎只是默认为换行符分隔的单元,而不是逻辑段落。

import fitz
doc = fitz.open("example.pdf")
blocks = [x[4] for x in  doc[0].getText("blocks")]
print(blocks)

(example.pdf 可以在这里找到)

如果不是从 Mac 的沼泽标准预览应用程序直接复制/粘贴,我可以忍受这一点,精美地保留了段落。PyMuPDF 不做的 Preview 是什么?我的管道的其余部分几乎都锁定在 PyMuPDF 中,所以我不能真正使用 Preview 进行提取。

4

1 回答 1

0

我希望有一种方法可以调用 Preview 使用的引擎。它比我为 Python 找到的任何东西都要好得多。但是要回答您的问题,在我看来,PyMuPDF' '在段落之间插入了一个包含单个空格 ( ) 的字符串。

例如,在第一段和第二段之间,您有:

...ontspannen. ', ' ', 'Kunnen...

您可以使用换行符 ( ) 替换所有单个空格字符串,'\n'如下所示:

for i in range(len(blocks)):
    if blocks[i] == ' ':
        blocks[i] = '\n'

由于每行文本都作为一个单独的字符串返回,因此您可能还希望连接组成段落的字符串。

于 2020-11-12T12:59:34.130 回答