itextpdf flying-saucer 将JSP转为PDF
在项目中有需求需要JSP转为PDF文件,踩了一些坑,现在自己总结下,以备自己再有需要
- JSP页面无法直接转为PDF,当然如果是纯静态也是可以的(无需通过JS去请求数据,解析时JS不会执行)
- 资源文件需要全路径,相对路径无效
- 图片资源,如果是相对路径,需要设置 render.getSharedContext().setBaseURL;如果文件存放在本地 file://D:/resources/;如果是远程文件http://localhost:8080/
- 中文需要引入中文字体支持,如何simhei.ttf,需要在页面中设置或者覆盖其他字体 font-family: SimHei;
示例:
登录界面
http://localhost:8080/login.jsp
因为原页面非黑体,现在需要覆盖字体
最后的效果