2010-06-21 45 views
3

我正在編寫一個程序,需要以文檔的形式輸入,它需要替換幾個值,插入一個表格並將其轉換爲PDF。它是用Python + Qt(PyQt)編寫的。是否有任何可以通過編程方式輕鬆使用的衆所周知的文檔標準?它必須是跨平臺的,最好是開放的。以編程方式使用什麼是好的文檔標準?

  1. 我查看了Microsoft Doc和Docx,它們是二進制格式,我無法編輯它們。 Python已經綁定了它,但它們只在Windows上。

  2. Open Office的ODT/ODF壓縮在xml文件中,所以我可以編輯該文件,但沒有命令行實用程序或以編程方式將文件轉換爲PDF的任何方式。 Open Office提供綁定,但您需要從命令行運行Open Office,啓動服務器等。而我的客戶端可能沒有安裝Open Office。

  3. RTF可以從Python讀取,但我找不到任何方式/庫將RTF文檔轉換爲PDF。

目前我正在從Microsoft Word導出到HTML,替換值並使用PyQt將其轉換爲PDF。但是它失去了格式化功能,看起來很糟糕。我很驚訝沒有一個衆所周知的庫可以讓你編輯各種文檔格式並將它們轉換成其他格式,我錯過了什麼?

更新:感謝您的建議,我會看看使用乳膠。

感謝, 傑克遜

+0

之所以沒有一個知名的庫來做這些轉換,是因爲這些文檔格式都很複雜。 OpenOffice可能是最接近轉換器的。 (順便說一句,OpenOffice遠不是唯一可以打開ODT/ODF文件的程序 - 該格式旨在成爲所有文字處理器可以讀寫的標準。) – 2010-06-21 06:30:39

回答

9

你有沒有看着用LaTeX文檔?

他們是完美的編程使用(編譯文件?你總得愛......),你有,你可以使用如plasTeXPyTex幾個Python框架。

將LaTeX文檔導出爲PDF幾乎是即時的。

0

我不知道你的程序有什麼奇怪的,Tex很好,我會去用它。
另一種可能的選擇是Excel格式,用​​解析它。
我已經使用了它幾次,它非常簡單。
Excel文件是由於以下原因,一個好的:

  1. 衆所周知格式便於編輯
  2. 你可以準備與約束和表
1

一個預定義模板,您可能會想嘗試ReportLab。開源版本可以編寫PDF,而商業版本有很多非常好的抽象,允許從單個輸入輸出到各種不同的格式。

0

創建XML文檔,將它們轉換爲XSL/fo並使用Fop或RenderX進行渲染。如果您使用docbook作爲主要輸入,則可以免費使用工具鏈將其轉換爲PDF,RTF,HTML等。

使用而不是我的樂趣的想法是相當古怪的,但確實提供並可嵌入到應用程序AFAICT中。

創建docbook非常簡單,因爲它具有廣泛的語義標籤,表格支持等,以提供可以可靠格式化的「有意義的」標記。 XSL樣式表是模塊化的,允許定製或替換零件以生成您自己的外觀和感覺。

它適用於有大量文本的相對自由的流動文檔。

爲了填充空白文檔,定期報告引擎可能更適合,或者直接將XSL-fo樣式表直接吐出XSL-fo。

2

既然你已經在使用PyQt,那麼看看Qt內置的RTF processing module看起來不錯。以下是有關詳細content manipulation的文檔,包括插入表格。 QPrinter模塊的默認打印到文件格式恰好是PDF。

不知道更多關於您的特定需求,很難說這些功能是否可以滿足您的需求,但是由於您的應用程序已經將PyQt作爲依賴項,因此在未評估已有功能的情況下, 。

雖然Qt框架的非GUI部分經常被忽略。

編輯:包括更多鏈接。

相關問題