添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

期望 :能够通过编写某种模板,把PDF的大概样子确定下来,然后把数据和模板做一次整合,得到最终的结果,生成PDF导出。
最终方案 :freemarker + flying-saucer-pdf + iText

iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。但iText html转PDF对中文和css的支持都不是很好,后来调研到了flying-saucer-pdf这个工具库,用它生成pdf解决了大部分的问题。它依赖于 iText 实现。

  • 图片显示问题。
  • 中文显示问题,css样式问题。
  • 表格跨行问题。
  • 关于Flying Saucer

    Flying Saucer 是一个纯Java开源项目库,它使用CSS2.1进行布局渲染呈现格式良好的XML或XHTML,导出到Swing面板、PDF或图像。

    New releases of Flying Saucer are distributed through Maven. The available artifacts are:
    org.xhtmlrenderer:flying-saucer-core - Core library and Java2D rendering
    org.xhtmlrenderer:flying-saucer-pdf - PDF output using iText 2.x
    org.xhtmlrenderer:flying-saucer-pdf-itext5 - PDF output using iText 5.x
    org.xhtmlrenderer:flying-saucer-pdf-openpdf - PDF output using OpenPDF
    org.xhtmlrenderer:flying-saucer-swt - SWT output
    org.xhtmlrenderer:flying-saucer-log4j - Logging plugin for log4j

    GitHub: https://github.com/flyingsaucerproject/flyingsaucer

    流程实现:

    1. build.gradle

    1
    2
    compile('org.freemarker:freemarker:2.3.28')
    compile('org.xhtmlrenderer:flying-saucer-pdf:9.1.16')

    2. 编写Freemarker模板(或者使用其他模板引擎),打造HTML,绘制出PDF的模板。