poi xml模板 操作pdf_PDF、EXCEL之动态模板编辑导出(ueditor+freemarker+itext+pdf.js+easypoi)...

本文介绍了一种使用ueditor编辑HTML模板,结合FreeMarker、iText、pdf.js和EasyPOI实现动态PDF预览、打印及Excel导出的方法。通过编辑HTML,利用FreeMarker填充数据,然后使用iText生成PDF,EasyPOI生成Excel。前端使用pdf.js进行PDF预览。
摘要由CSDN通过智能技术生成

需求为:用户通过编辑模板,指定需要导出的字段,支持根据不同模板实现预览打印pdf及导出excel

思路:

模板编辑:前端使用富文本编辑器编辑所需的模板,通过拖拽或其他方式将不同字段的FreeMarker语法插入到指定位置

将编辑器的HTML模板保存至服务器

填充数据:使用FreeMarker根据HTML模板填充数据,生成包含数据的HTML字符串

PDF预览及打印:根据填充数据后的HTML,使用itext生成pdf文件,前端使用pdf.js访问该文件进行预览及打印

Excel导出:根据填充数据后的HTML,使用EasyPOI生成Excel文件,作为附件下载导出

模板编辑篇

这是最难做的,之前工作中有个用到编辑动态模板的,然后是两个前端高级工程师花了一个月直接改编辑器源码才实现功能。以我的水平,自然是分分钟搞不定的,只能先简单手动写个模板

使用百度ueditor

image.png

获取生成的HTML

坑1:重新从服务器拿回HTML特么会重新格式化,代码中&nbsp本来不应该存在,它自己加上去的

坑2:直接使用插入表格时,虽然在编辑器显示有表格边框,但实际html不带边框,需要自己编辑table border属性

坑3:不支持指定特殊属性,因为编辑器会格式化掉它不认识的东东

模板标题

日期:${time}

ID

父ID

字典名

备注

${(data.id)!}

${(data.parentId)!}

${(data.name)!}

${(data.comment)!}

数据填充篇

注意:模板来源是字符串而不是ftl文件,html是返回字符串而不是html文件,代码中ftl及html文件写出只是为了调试用

还是因为富文本编辑器原因,freemarker遍历list的语法是在这里处理的,这样限制了模板支持的格式,根源还是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值