如何从 PDF 中提取文本内容(不是图像),同时(大致)保持 Google Docs 可以的样式和布局?
6 回答
要从 PDF 中提取文本并获取其位置,您可以使用PDFMiner。PDFMiner 还可以直接以 HTML 格式导出 PDF,将文本保持在正确的位置。
我不知道您的用例,但是这样做时您可能会遇到很多问题,因为 PDF 确实是面向演示而不是面向内容的,文本流不是连续的。因此,如果您希望文本可编辑,这将不是一件容易的事。
如果你想像谷歌一样做:
Google 将 PDF 转换为图像,然后用 JavaScript 可突出显示的区域(类似于 Voodoo 魔法)覆盖图像,以前是文本所在的位置。当您用光标滚动这些区域时,这些区域似乎是文本,但它们不是。这可能无法帮助您了解,但他们就是这样做的。如果你想对其进行逆向工程,你可以从https://www.mercurial-scm.org/开始,在主页上,他们用 JavaScript 做同样的事情来使文本高亮和可复制。您可以从 PDF 中提取文本,并在其他答案中提到的库中找到它在页面中的位置。然后,您可以使用相同样式的 JavaScript 区域覆盖文件的提取图像。
Xpdf 有一个名为 PDFtoText 的实用程序,它做得很好。http://foolabs.com/xpdf/download.html
如果你不打算用 python 来做这件事,Ghostscript可以为你做这件事。查看 pdf2ascii(GS 附带的脚本)以获取纯文本。样式更复杂,因为它们可以通过几种不同的方式指定。
Acrobat Professional 可以胜任这项工作。在“文件”菜单中,选择导出。然后,选择文本。