如何从PDF中提取格式化文本内容

17 投票
6 回答
28052 浏览
提问于 2025-04-15 18:52

我怎么才能从PDF文件中提取出文字内容(不包括图片),同时大致保持它的样式和布局,就像Google Docs那样?

6 个回答

4

如果你想像谷歌那样做:

谷歌会把PDF文件转换成一张图片,然后在原本有文字的地方,用JavaScript创建一些可以高亮的区域(这就像是巫术一样神奇)。当你用鼠标指针在这些区域上移动时,它们看起来像是文字,但其实并不是。虽然这可能对你没有太大帮助,但这就是他们的做法。如果你想要反向工程(也就是研究它是怎么做的),你可以从https://www.mercurial-scm.org/开始。在他们的主页上,他们也用JavaScript做了类似的事情,让文字可以高亮和复制。你可以从PDF中提取文字,并用其他回答中提到的库找到它在页面上的位置。然后,你可以用同样风格的JavaScript区域,把提取的文件图片覆盖上去。

7

你有没有试过 pyPDF 或者 ReportLab 这些处理PDF的库?我个人没有用过,但你可以试试看。这里 的内容也很有用。

11

如果你想从PDF文件中提取文本并获取它的位置,可以使用PDFMiner这个工具。PDFMiner还可以直接把PDF导出为HTML格式,这样文本的位置也能保持正确。

我不知道你具体的需求是什么,但在做这个过程中可能会遇到很多问题,因为PDF文件主要是为了展示而设计的,而不是为了内容。文本的流动性并不是连续的。所以,如果你想让提取出来的文本可以编辑,这可不是一件简单的事情。

撰写回答