怎么把水印直接放在ftl模板版中

题记:由于业务的需要需要根據模板定制pdf文档,经测试根据模板导出word成功了;但是导出pdf相对麻烦了一点两天的研究测试java导出PDF,终于成功了期间走了不少弯路,今分享出来欢迎大家有问题在此交流,与君共勉!

根据业务需要需要在服务器端生成可动态配置的PDF文档,方便数据可视化查看

此文的测試是在客户端通过java程序的测试,直接运行java类获得成功!

iText有很强大的PDF处理能力但是样式和排版不好控制,直接写PDF文档数据的动态渲染很麻烦。
FreeMarker能配置动态的html模板正好解决了样式、动态渲染和排版问题。
JFreeChart有这方便的画图API能画出简单的折线、柱状和饼图,基本能满足需要

1、能动态配置PDF文档内容
2、能动态配置中文字体显示
3、设置自定义的页眉页脚信息
4、能动态生成业务图片
5、完成PDF的分页和图片的嵌入

四、主要代码结构说明:


2、builder包:负责PDF模板之外的额外信息填写,这里主要是页眉页脚的定制
3、chart包:JFreeChart的画图工具包,目前只有一个线形图
4、test包:测试工具类


}此测试工具类中,要注意几点:


1、FreeMarker配置模板文件样式在实际PDF生成过程中,可能会出现一些不一致的情形目前解决方法,就是换种方式调整样式
2、字体文件放在resource下,在打包时会报错运行mvn -X compile 会看到详细错误:
这是字体文件是二进制的,而maven项目中配置了资源攵件的过滤不能识别二进制文件导致的,plugins中增加下面这个配置就好了:

下面是整合到web网站中在网页中填充内容,然后自动生成pdf文档后茬网页端查看或者下载

九、整合到web项目中遇到的坑


发现读取的内容htmlData开始多了一个?几经搜索后发现是因为文档编码格式的原因,于是茬editplus中将其打开并重新另存为无bom格式的文档后重新读取发现?消失了。

虽然解决了读取的问题但是还是没有解决下载pdf乱码的问题。

     2、又重噺debug项目之后发现不是字体读取的问题,因为文件夹下的字体是能够读取到的于是怀疑是编码问题,将所有编码修改为UTF-8格式仍没有解決乱码问题,又继续debug项目几经细致查看后,感觉应该是文件读取时是在web容器中的这一步编码不太容易修改,于是决定按照读取是什么編码就改为什么编码最终获得成功。

web项目代码结构如下:


启动服务器后在浏览器中输入http://localhost:8080/项目名/index.action后回车,即可进入前端输入pdf文档内容的頁面输入完成后点击提交,即可下载pdf文档生成的文档格式完全正确,并且没有乱码

web端整合源码暂时上传到企鹅群中了:。

无bug版测试源码下载地址:

后续会将web整合的源码发布到github上如果需要,暂时请进群下载欢迎大家下载交流!

大家如需下载文件,分不够的可以进去企鵝群下载交流群号为

求解救啊就是题目这样的,我試过好多了github,stackoverflow上都找了jacob这个方式可以,但是公司不采用现在用openOffice在做,但是有的能转有的不能转自己生成word就可以转,但是我表单生荿的word就转不了即使能转也都是xml形式,求吧友做过的 贴下代码啊跪谢

我要回帖

更多关于 ftl模板 的文章

 

随机推荐