2012-08-25 47 views
2

那麼我最近問了一個關於讓PDF文件成爲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-通過運行成爲PDF的FO:fop intermediate-fo-file.fo final.pdf
  5. 該PDF文件看起來與原始ODT文件幾乎相同。

但還是說,我在開始時有一個PDF文件,怎麼可能做同樣的事情呢?有什麼建議麼?

回答

5

將PDF無損轉換爲XML的唯一機會是使用與PDF具有相同視圖的目標XML詞彙表。由於PDF對文檔的看法主要集中在表現方面,而不是專門用於展示,而像Docbook這樣的XML詞彙表設計的通常動機是捕捉更高層次的抽象,所以您面臨兩個困難:(1)面向表示的XML詞彙表不厚(2)如果您希望從PDF轉向更傳統的XML詞彙表(無論是直接的還是通過面向演示的XML),您都會迫不及待地嘗試解讀文檔的表達方式更高層次的目標詞彙抽象。充其量,使這樣的過程自動化將是非常困難的。

如果這是一種思維實驗,並且您正在考慮PDF-XML-PDF往返時間以查看何時以及如何可能,那麼您現在知道某些人爲了相信在任何情況下都不可能的原因一般形式。如果您希望PDF-to-PDF數據流出於某種實際的原因,您可能想反思一下您的實際目標是否可以通過其他方式得到滿足。

+0

謝謝您的回答。逐漸地,我逐漸明白了完成這項任務的難度,但仍然考慮到XML所需的空間比例與PDF中顯示的相同信息相比所帶來的巨大收益。在某些情況下,它是十倍 - XML = 10kb PDF = 1Mb在我們處理大量文檔的巨大長期存檔系統中,如果文件可以以XML格式存儲,但以PDF格式存儲,則會產生影響 - 考慮到公司和當局最初在PDF中產生了大量的文件。 –

+0

這就是爲什麼PDF-XML-PDF會「膨脹」來解決。 –

+0

@Paul如果你的pdf文檔很簡單我相當肯定你可以做你最初的問題。另外,你有沒有看過PDF/A(PDF存檔)? – Jimmy

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

你也可以考慮在德州的替代XSL-FO,TeXML。我有一箇舊的XSL將PDFX類XML轉換爲.texml,然後texml可以將它變成.tex

(披露:我寫了PDFX。)

+3

你爲什麼不告訴我們你使用的API?我們是開發商。 –

+1

鏈接不再響應截至2015年12月。 –

+0

你可以在這裏運行一個例子:http://pdfx.cs.man.ac.uk/ –