poi xml模板 操作pdf_Java 调用freemarker 模板文件在服务器生成PDF 或word 文档有哪些成熟技术路径?...

好像并没有人给出切实可行的解决方案,那么我来添加一个回答吧!

前年的项目需要一个“在线预览”功能,也就是用户上传的Word或Excel等文档,可以不经过下载直接在线预览。当时对比了多种解决方案,包括Flash等,最终敲定的方案是所有文档统一转化为PDF,然后使用H5技术的PDF在线预览模块来实现在线预览。这样的话,就存在两个关键问题:

1、如何将用户上传的文档转化为PDF?

2、如何在线预览PDF?

第一个问题,因为项目要部署到Linux上,所以基于MS Office的一切解决方案就统统不考虑了。经过一番Google,最终敲定使用LibreOffice的SDK来完成转换。Java同LibreOffice的交互,则使用了开源的JODConverter。经测试,转换基本上可以说完美,速度也很理想。不过遗憾的是,该插件不支持多线程。

第二个问题,使用了火狐他家的PDF.js,纯H5实现,不需要任何插件——包括Flash。基于Flash的方案不仅要对PDF实行2转,而且资料极少且收费。PDF.js完全符合我们的需求。但缺点是,不支持IE8以下的浏览器。

题主的需求,参照我的解决方案,至少PDF的保存,可以得到解决。

现在再绕回去,看看怎么解决数据填写后生成固定格式的文档。

FreeMarker是MVC中,V层,也就是视图层的一环。而事实上,“生成固定格式的文档”,也是位于V层的。也就是说,FreeMarker和文档生成都是视图层,它们可以共用Model层,但彼此之间并没有交集。所以该课题和FreeMarker没有毛线关系。

Java中操作Office系的文档,首推Apache POI库。不过……该库应对读取还好说,写入功能并不强大。特别是针对样式的一些操作,极度的不直观……应付你所谓的“固定格式表格”,我认为是够用的了。

So,在满足题主问题需求的前提下,我给出的解决方案就是:POI(生成文档)-> LibreOffice + JODConverter(转换文档至PDF)。如果有在线预览文档的需求,则使用PDF.js。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值