itextpdf flying-saucer 将JSP转为PDF

在项目中有需求需要JSP转为PDF文件,踩了一些坑,现在自己总结下,以备自己再有需要

  1. JSP页面无法直接转为PDF,当然如果是纯静态也是可以的(无需通过JS去请求数据,解析时JS不会执行)
  2. 资源文件需要全路径,相对路径无效
  3. 图片资源,如果是相对路径,需要设置 render.getSharedContext().setBaseURL;如果文件存放在本地 file://D:/resources/;如果是远程文件http://localhost:8080/
  4. 中文需要引入中文字体支持,如何simhei.ttf,需要在页面中设置或者覆盖其他字体 font-family: SimHei;

示例:

登录界面

 

http://localhost:8080/login.jsp

itextpdf flying-saucer 将JSP转为PDF

因为原页面非黑体,现在需要覆盖字体

itextpdf flying-saucer 将JSP转为PDF

itextpdf flying-saucer 将JSP转为PDF最后的效果

itextpdf flying-saucer 将JSP转为PDF