如何将 PDF 转换为 XML 并在 XSL 中捕获其结构/样式?
3 回答
我曾经将 PDF 到 XML 的转换描述为试图将汉堡包变成奶牛。这是逆向工程的练习。PDF 在表示文本的方式上变化很大。在更糟糕的情况下,您所拥有的只是一张扫描图像(在这种情况下,您实际上是在进行 OCR)。如果幸运的话,您有一组文本字符串,其中包含它们在页面上出现位置的坐标,但没有其他结构指示。
如果 PDF 是他们理解的格式,那么有些工具可以完成合理的工作(通常生成 Microsoft Word)。谷歌“PDF 到 Word 转换”。尝试一下(我已经有一段时间没有这样做了);不要尝试自己编写。当然,从 Word 到 XML 是“相对”简单的。
PDFTextStream可以轻松地将 PDF 文档中的文本提取为 XML。PDFTextStream 包含一种特殊的 PDF->XML 方法 — <a href="http://downloads.snowtide.com/javadoc/PDFTextStream/latest/pdfts/examples/XMLOutputTarget.html" rel="nofollow">XMLOutputTarget — PDFTextStream 中包含的源代码,因此您可以轻松调整它以满足您的要求。
代码示例可供入门,或者您可以更深入地阅读有关使用 PDFTextStream 提取 PDF 文本的工作原理。
(披露:我受雇于 PDFTextStream 的制造商 Snowtide。我希望这个指针在任何情况下都有帮助。)
我认为 Michael Kay 将 PDF -> XML 转换描述为“试图将汉堡包转换为奶牛”时,他做到了这一点。
过去我做过很多 PDF 到 XML 的转换。我很幸运,我可以转换不需要 OCR 的不错的 PDF。我的大部分问题都与表格和图形有关。像迈克尔建议的那样首先转换为 Word 可能会有所帮助。
我所做的是使用 Xpdf 将 PDFpdftotext
转换为文本,然后将文本转换为 XML。(我使用 Omnimark 进行文本 -> XML 转换,但您可能使用 Java 或 Python 进行转换。转换为基本结构然后使用 XSLT(2.0!)进行微调可能是最简单的。