16

如何从 PDF 中提取文本内容(不是图像),同时(大致)保持 Google Docs 可以的样式和布局?

4

6 回答 6

10

要从 PDF 中提取文本并获取其位置,您可以使用PDFMiner。PDFMiner 还可以直接以 HTML 格式导出 PDF,将文本保持在正确的位置。

我不知道您的用例,但是这样做时您可能会遇到很多问题,因为 PDF 确实是面向演示而不是面向内容的,文本流不是连续的。因此,如果您希望文本可编辑,这将不是一件容易的事。

于 2010-02-04T02:13:20.127 回答
7

您是否尝试过pyPDFReportLab PDF 库?我个人没有使用过它们,但你可以试一试。这里也很有用

于 2010-02-04T01:04:06.137 回答
4

如果你想像谷歌一样做:

Google 将 PDF 转换为图像,然后用 JavaScript 可突出显示的区域(类似于 Voodoo 魔法)覆盖图像,以前是文本所在的位置。当您用光标滚动这些区域时,这些区域似乎是文本,但它们不是。这可能无法帮助您了解,但他们就是这样做的。如果你想对其进行逆向工程,你可以从https://www.mercurial-scm.org/开始,在主页上,他们用 JavaScript 做同样的事情来使文本高亮和可复制。您可以从 PDF 中提取文本,并在其他答案中提到的库中找到它在页面中的位置。然后,您可以使用相同样式的 JavaScript 区域覆盖文件的提取图像。

于 2010-02-04T01:25:54.000 回答
4

Xpdf 有一个名为 PDFtoText 的实用程序,它做得很好。http://foolabs.com/xpdf/download.html

于 2011-07-05T17:21:56.027 回答
3

如果你不打算用 python 来做这件事,Ghostscript可以为你做这件事。查看 pdf2ascii(GS 附带的脚本)以获取纯文本。样式更复杂,因为它们可以通过几种不同的方式指定。

于 2010-02-04T01:23:43.553 回答
3

Acrobat Professional 可以胜任这项工作。在“文件”菜单中,选择导出。然后,选择文本。

于 2012-10-24T19:39:41.997 回答