JAVA操作PDF開源項目
一、操作PDF的JAR主要分成兩類,分別是iText系列和Apache PDFBox系列
- iText PDF :iText是著名的開放項目,是用於生成PDF文檔的一個java類庫。通過iText不僅可以生成PDF或rtf的文檔,
而且可以將XML、Html文件轉化為 PDF 文件
iText 5官網,已停止維護。iText5倉庫地址
iText 7官網 。iText7倉庫地址
iText 7 與iText 5是兩個不同的體系。 iText 5已經暫停維護, iText 5與iText 7都分為商業版和社區版
itxt7和itext5對比
開發文檔
Apache PDFBox庫是用於處理PDF文檔的開源Java工具。該項目允許創建新的PDF文檔,操縱現有文檔以及從文檔中提取內容的功能。
Apache PDFBox還提供了幾個命令行實用程序。可以說Apache出品必是精品。
OpenPDF是一個Java庫,使用LGPL和MPL開源許可證。可以擁有創建和編輯PDF文件。
OpenPDF是iText的LGPL/MPL開源后繼產品,它基於iText 4 svn標簽的一個分支。
x-easypdf基於pdfbox構建而來,極大降低使用門檻,以組件化的形式進行pdf的構建。
簡單易用,僅需一行代碼,便可完成pdf的操作。是國人開源的一個基於Apache PDFBox的JAR包。
二、操作PDF相關工具
- Jasper Report :是一個強大、靈活的報表生成工具,能夠展示豐富的頁面內容,並將之轉換成 PDF
JasperReport是一個強大、靈活的報表生成工具,能夠展示豐富的頁面內容,並將之轉換成 PDF,HTML,或者 XML格式。該庫完全由Java寫成,可以用於在各種Java應用程序,包括 J2EE,Web應用程序中生成動態內容。
只需要將JasperReport引入工程中即可完成PDF報表的編譯、顯示、輸出等工作。數據源支持更多,
常用JDBC SQL查詢、XML文件、CSV文件 、HQL(Hibernate 查詢),HBase,JAVA集合等。還允許你義自己的數據源,通過JASPER文件及數據源,JASPER 就能生成最終用戶想要的文檔格式。
- Openoffice :openoffice是開源軟件且能在windows和linux平台下運行,可以靈活的將word或者Excel轉化為PDF文檔。
三、生成可替換pdf
FreeMarker是一款模板引擎:即一種基於模板和要改變的數據,並用來生成輸出文本(HTML網頁,電子郵件,配置文件,源代碼等)的通用工具。 它不是面向最終用戶的,
而是一個Java類庫,是一款程序員可以嵌入他們所開發產品的組件。
四、Word轉換為Pdf的幾種方式
利用各種Office應用進行轉換
- JobConverter + OpenOffice ,支持跨平台,免費 (一般格式實現效果還行,復雜格式容易有錯位)
- SaveAsPDFandXPS + msOfficeWord + jacob ,僅支持Windows,免費 (完美保持原doc格式,效率最慢)
利用jar進行轉換
- poi讀取doc + Jsoup格式化Html + itext生成pdf (實現最方便,效果最差,跨平台)
- jdoctopdf - Dead as of 2016-02-11 Uses Apache POI to read the Word document and iText to write the PDF
- Docx4j
- docx4j-export-FO ,需要依賴 plutext ,已經停止對外服務。
- Spire.Doc for Java ,收費(免費的有限制)
- itext-7-pdfoffice ,收費
- Aspose.Words ,收費(免費的有限制)
