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

别的不多说了,自己看吧,基本满足了需求。

 

转载于:https://www.cnblogs.com/tusheng/p/6991275.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值