Java HTML to PDF 支持SVG


 

嘗試一 (現用框架的基礎上改動,影響最小化)

最早使用的框架 Xhtmlrenderer,需要把HTML轉換成XHTML,引入第二個框架Tidy,Tidy與2010年停止更新,github上的項目也停留在2011年,它對SVG等HTML5標簽不在支持

找到源碼,做了修改,讓Tidy支持了SVG標簽,又遇到了兩一個問題,Xhtmlrenderer 不識別SVG標簽,終止。

 

嘗試二 (SVG轉PDF上入手)

從SVG轉PDF入手

apache的batik框架支持滿足需求,但是它並沒有提供HTML轉PDF,終止。

 

嘗試三 (Highchar-export-server)

前端的char框架為highchar,支持導出PDF、png、svg等格式。查源碼找到服務端項目Highchar-export-server,雖然是java支持,但底層調用的是phantomjs,僅支持SVG轉PDF,同上,終止。

 

嘗試四 (openhtmltopdf)

An HTML to PDF library for the JVM. Based on Flying Saucer and Apache PDF-BOX 2. With SVG image support.

看說明好像滿足了我們的需求

Open HTML to PDF is based on Flying-saucer. Credit goes to the contributors of that project. Code will also be used from neoFlyingSaucer

測試例子

Test cases, failing or working are welcome, please place them in /openhtmltopdf-examples/src/main/resources/testcases/ 

and run them from /openhtmltopdf-examples/src/main/java/com/openhtmltopdf/testcases/TestcaseRunner.java.

 

可能會涉及到引入字體

builder.useFont(fontFile, fontFamily);

 

該框架對HTML標簽嚴謹度有點高(大小寫、閉合標簽等),兼容的話 改源碼可以搞定。

測試中對於某些特殊的SVG圖,轉換並不是很好。

 

https://github.com/danfickle/openhtmltopdf

別的不多說了,自己看吧,基本滿足了需求。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM