PDF到XML并再次回到PDF

时间:2012-08-25 22:52:54

标签: xml pdf

好吧,我最近问了一个关于让PDF文件成为XML文件,然后将其返回到PDF文件的问题,最好与原文完全相同,但至少差不多。

我一直在尝试不同的方法,到目前为止我想出了这个方法。

  1. 用LibreOffice编写的文档保存为DocBook XML。说它名为“file.xml”。
  2. 使用文件“docbook.xsl”启动的DocBook项目中的一组XSL模板解析此文件。
  3. 这可以通过运行来完成:xsltproc -o intermediate-fo-file.fo /usr/share/xml/docbook/stylesheet/nwalsh/fo/docbook.xsl file.xml
  4. 结果是一个中间的XSL-FO,它通过运行成为PDF:fop intermediate-fo-file.fo final.pdf
  5. 此PDF文件与原始ODT文件几乎相同。
  6. 但是,我说一开始我有一个PDF文件,怎么可能做同样的事情?有什么建议吗?

2 个答案:

答案 0 :(得分:5)

从PDF到XML的无损转换的唯一机会是使用目标XML词汇表,该词汇表具有与PDF相同的文档视图。由于PDF的文档视图主要集中在演示文稿上,而像Docbook这样设计XML词汇表的通常动机是捕获更高级别的抽象,因此您面临两个难点:(1)面向表示的XML词汇表不厚在实地,(2)如果你想从PDF转到更传统的XML词汇表(直接或通过面向表示的XML),你将推动水上坡,试图解释文档的表达方式目标词汇的高级抽象。充其量是自动化这样一个过程将是非常困难的。

如果这是一种思想实验,并且您正在考虑PDF-XML-PDF往返,以了解何时以及如何可能,那么您现在知道一些人会相信它在任何一般情况下都不可能的原因形成。如果您出于某些实际原因需要此PDF到PDF数据流,您可能想要反思您是否可以通过其他方式实现您的实际目标。

答案 1 :(得分:1)

如果您的文档与全文文章有任何关系(例如http://pdfx.cs.man.ac.uk/example.pdf),PDFX可能会有所帮助。

它将PDF文章转换为与Docbook文档结构相似的XML。它还试图保留一些有关提取元素的定位信息,因为它们可以在原始PDF中找到(例如页面和列号),这些信息可以帮助您从PDFX XML转到已经制作PDF的Docbook XML。

示例输入/输出:http://pdfx.cs.man.ac.uk/example

用法:http://pdfx.cs.man.ac.uk/usage

您可能还会考虑Tex替代XSL-FO,TeXML。我有一个旧的XSL将类似PDFX的XML转换为.texml,然后texml可以将其转换为.tex

(披露:我写过PDFX。)