利用Freamarker模板生成PDF文件

本文记录使用Framarker模板生成PDF时遇到的挑战,包括字体、路径和Framarker数据格式问题。在字体选择上,需要下载字体并声明使用,避免中文不显示。路径处理要考虑Windows和Linux的区别,数据格式转换和判空处理也是关键点。
摘要由CSDN通过智能技术生成

本文中源代码是参考各论坛上的代码~~然后爬坑上生产,今天写这个主要是回忆一下爬坑的过程,如有侵权,请告知,谢谢!

大致的实现思路:Freamarker 模板-->模板引擎-->转成文件流输出

需要熟悉的技术点,Freamarker模板语言、ITextpdf ...

看着很简单,其实坑还是有点多的

字体的坑:字体需要从网上自行下载,然后放到项目中,也有论坛里面说从windows系统字体库里面拿~~~(我不记得有没有这么干过,但是我最后是从网上下载的字体库),这不是最坑的地方,最坑的地方是  ftl文件中需要自定义样式,主动声明使用哪一种字体,否则中文就不显示啦~比如我写了一个ftl文件,header里面需要定义一个style:

        body {
            font-family: KaiTi_GB2312;
        }

路径的坑:windows路径和Linux服务器上路径是不一样的~~这个大家都知道哈~~正常来说,通过类的上下文获取文件路径,获取字体文件,这应该是比较完美的,但是打包发布之后,不知道为啥一直获取不到字体文件,错误信息就是字体文件失效(有知道的麻烦告知一下~谢谢!~ 另外,字体失效在windows环境下偶尔也会出现,不知道原因,只能替换字体文件来解决)-_-!   最终采用了写死路径,根据获取到的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值