本文中源代码是参考各论坛上的代码~~然后爬坑上生产,今天写这个主要是回忆一下爬坑的过程,如有侵权,请告知,谢谢!
大致的实现思路:Freamarker 模板-->模板引擎-->转成文件流输出
需要熟悉的技术点,Freamarker模板语言、ITextpdf ...
看着很简单,其实坑还是有点多的
字体的坑:字体需要从网上自行下载,然后放到项目中,也有论坛里面说从windows系统字体库里面拿~~~(我不记得有没有这么干过,但是我最后是从网上下载的字体库),这不是最坑的地方,最坑的地方是 ftl文件中需要自定义样式,主动声明使用哪一种字体,否则中文就不显示啦~比如我写了一个ftl文件,header里面需要定义一个style:
body {
font-family: KaiTi_GB2312;
}
路径的坑:windows路径和Linux服务器上路径是不一样的~~这个大家都知道哈~~正常来说,通过类的上下文获取文件路径,获取字体文件,这应该是比较完美的,但是打包发布之后,不知道为啥一直获取不到字体文件,错误信息就是字体文件失效(有知道的麻烦告知一下~谢谢!~ 另外,字体失效在windows环境下偶尔也会出现,不知道原因,只能替换字体文件来解决)-_-! 最终采用了写死路径,根据获取到的