web项目PDF导出---freemarker 与 ITextRenderer--加页码

本文介绍了如何在web项目中使用Freemarker和ITextRenderer来导出PDF,作为替代PhantomJS的解决方案。通过学习Freemarker模板语法和配置,可以支持HTML和CSS样式。内容涵盖了FTL模板中中文字体的显示、静态资源的引入、图片显示,以及使用PdfUtils和PdfHelper辅助类生成PDF。文章还提及了2017年更新的静态PDF页码添加方法,适用于内容已知或页数固定的PDF,但动态页面的页码添加仍需研究。
摘要由CSDN通过智能技术生成

最近项目中又遇到pdf导出的需求,以前一直都是用phantomjs-2.1.1-windows.exe插件做的pdf导出,运用插件优点是直接可以把html页面直接转换成pdf导出,缺点是它需要安装,windows、linux、mac等环境下需要的插件安装都不一样,中文字体还需要单独安装;查询了一些文档后就决定采用freemarker 与 ITextRenderer来实现了;偶然间在git看到了flying saucer项目;发现思路基本一致就在其基础上开发了(^_^) 。

freemarker 模板能很好的支持html、css样式;但是运用之前需要小小的学习一下freemarker ftl模板的一些固定语法,这对一般的开发者而言应该都没什么难度(^^)。

下面记录一下用到的方法与运用freemarker 与 ITextRenderer过程的一些坑

  1. ftl模板中中文字体显示
  2. ftl模板中静态资源引入
  3. ftl模板中img显示

@RequestMapping("/createPdf/{corpid}")
    public ResponseEntity<byte[]> createPdf(@PathVariable(value="corpid")String corpid,HttpServletRequest request)
            throws Exception {
Map<Object, Object> o = new HashMap<Object, Object>();
。。。。
//此处省略对o获取数据的过程
//获取ftl模板路径
    String path = request.getSession().getServletContext().getRealPath("WEB-INF/views/page/favorable");
        String uuid = UUID.randomUUID().toString().replace("-", "");

        //设置图片路径,解决找不到图片问题
        String imgUrl = request.getSession
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值