2011-02-10 166 views
8

我希望這個問題能成爲一個PDF操作和Java渲染的綜合指南。我有一個相當全面的實現拼接多個開源庫,我想改進它。Java PDF操作和渲染

背景

我的要求和當前實現:

  1. 檢查特定條件現有的PDF文檔(PDF版本,密碼保護,字體嵌入,交叉參考表等) - 未實現。
  2. 允許通過頁面座標或其他一些機制定義Acroform字段。 - 未執行
  3. 提供遍歷在PDF表單字段,檢查字段類型和用數據填充能力 - iText v 2.0.8
  4. 的PDF渲染到在不同的分辨率的圖像/ DPI - 兩個實現(pdfrenderer和IcePDF
  5. 渲染HTML/XHTML文件爲PDF - 飛碟xhtmlrenderer
  6. 做到以上作爲Java服務器環境中(意味着線程安全)

什麼我不喜歡

我不滿的以下內容:

  1. iText的許可:iText的新版本正在它是一個非首發爲我的項目(在AGPL許可證和一般的商業項目?)。商業許可證的費用不是微不足道的(根據使用情況的定價,文檔的幾分錢到站點許可證的數以萬計爲單位),如果我要爲軟件支付許可證費用,我想做一個完整的市場尋找最好的產品。 iText的2.x版本可以正常工作,但是那裏有足夠的錯誤。
  2. PDF版本的一致性:有奇怪的一致性問題,當涉及到字體嵌入在這些庫,交叉參考表等引起的悲傷的合理費用。
  3. 渲染輸出質量:從這些文件渲染PNG的質量在嵌入字體,圖像和圖層的領域存在一些問題。

我所希望的

我希望能得到誰已經研究PDF庫的用戶和人的一些反饋。請儘可能多地包含以下完整性和後代信息。

  • 是你的答案/評論基於使用或研究
  • 名,庫和許可證的版本(如果商業授權,請包括成本,如果可能的話)
  • 你用什麼庫
  • 你喜歡它什麼/是什麼好與
  • 你不喜歡它什麼/是什麼不好用
  • 什麼是你的整體印象
+0

呈現PDF由於SO只允許2個鏈接。 [pdfrenderer](http://java.net/projects/pdf-renderer/sources/svn/show/trunk?rev=127),[xhtmlrenderer](http://java.net/projects/xhtmlrenderer/) – rajeshj 2011-02-10 20:39:07

+0

I認爲你在列出iText的價格有點高。成千上萬,當然是成千上萬? – 2011-02-10 21:48:20

回答

3

如果你真的從你使用的產品中賺錢,iText只會花費你的錢。大多數人會認爲這是公平的。你在比較什麼?

iText通過StackOverflow爲非付費用戶提供支持。併爲付費客戶提供高級支持。

2

我們的BFO PDF庫http://bfo.com可以非常容易地完成大部分工作 - 加載PDF並確定其屬性,創建,迭代和填充表單域並將PDF渲染爲位圖都是標準工具。從HTML或XHTML轉換有點棘手,但我們有一個配套產品,BFO報告生成器,它將使用與XHTML + CSS非常相似的XML語法來完成此操作。

我不確定你的意思是「PDF版本一致性」 - 如果你有特定的問題,你可能想擴大,但否則我不會太掛在實際的版本號PDF - 除了少數例外情況,PDF功能幾乎是向後兼容的(新功能通常只被不理解它們的讀者忽略)。

將PDF柵格化爲位圖是一堆蠕蟲 - 正確執行意味着要編寫自己的字體和圖像格式解析器(一項重要任務:Type 1字體需要PostScript解析器),並擊敗了PDF將模型渲染到AWT模型的圓孔中。它也依賴於PDF創建軟件正確執行工作。因此,無論您選擇哪種軟件,如果文件無法正確呈現,請將其通過電子郵件發送給技術支持團隊 - 我們總是在爲我們的產品收集繁瑣的PDF文件。

我們的網站有更多的信息和下載試用版,如果您想獲得授權費用信息,請直接聯繫我們。

乾杯......邁克(CTO @ BFO)

0

還有ghostscript的,可以在不同的DPI

gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=png16m -r300x300 -sOutputFile=page_%d.png doc.pdf