SpringBoot如何实现word文档转pdf
发布日期:2025-01-04 16:31 点击次数:176
一.背景
项目中有个需求大体意思是,上传一个word模板,根据word模板合成word文件,再将word文件转为pdf。
二.方案选择
1.Spire.Doc for Java方案
Spire.Doc for Java这个是商用收费的,不过API文档丰富且集成简单,免费版仅支持3页转换。类似的还有ITEXT,这个商用也是受限制的。
2.docx4j方案
开源可商用,仅支持docx格式的word。
3.jodconverter+LibreOffice 方案
开源可商用,调用本地office服务,进行pdf转换,类似的还有jodconverter+openOffice。
4.其他
至于其他的由于不支持跨平台不做考虑。
三.实操
1.docx4j
首先尝试了docx4j,因为docx4j本身支持模板替换的操作,可一次性做替换及文档类型转换,而且仅支持docx类型,对于本次需求问题不大。
1.依赖仅需要一个即可
2.主要代码
清除工具类,用于处理占位符替换不生效的问题,这里参考文章
2.poi-tl+jodconverter+LibreOffice 方案
poi-tl这个是专门用来进行word模板合成的开源库,文档很详细。
LibreOffice 下载最新的稳定版本即可。
1.maven依赖
2.主要代码
JodConverterConfig配置类
yml配置文件
PdfService合成导出代码
四.结论
1.docx4j方案
依赖少同时支持word合成及格式转换转化效率较差对于含样式及图片转换不友好,容易排版混乱
2.jodconverter+LibreOffice 方案
操作稳定转换效率快集成依赖设置较多依赖本地服务LibreOffice打开word可能排版样式错乱最后考虑项目需求,最终选择了jodconverter+LibreOffice方案。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。