这里采用的技术为freemarker + itext + flying saucer。
1) 编写Freemarker或者Velocity模板,打造HTML,勾画PDF的样式(请任意使用CSS)
2) 在你的业务逻辑层引入Freemarker的引擎或者Velocity的引擎,并将业务逻辑层中可以获取的数据和模板,使用引擎生成最终的内容;
3) 将代码做简单封装后,调用,生成PDF。
注意:
1.中文输出问题:一是在java代码里引用字体,二是在页面上引用字体。
2.输入的HTML页面必须是标准的XHTML页面。页面的顶上必须是这样的TML页面的语法必须是非常严谨的,所有标签都必须闭合等等(由于flying-Saucer做了XML解析的工作,不严谨会报错的。),这是对页面的第一个要求。
3.要用到图片的地方写相对路径的形式,323图片位置则必须在Java代码中指定。
renderer.getSharedContext().setBaseURL(“file:/D:/”);
也有另一种方法就是直接在标签中写绝对路径。