七叶笔记 » java编程 » SpringBoot如何实现word文档转pdf

SpringBoot如何实现word文档转pdf

一.背景

项目中有个需求大体意思是,上传一个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方案。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。 

相关文章