word转pdf的相关第三方jar说明
- docx4j
免费开源、稍微复杂点的word,样式完全乱了,且xalan升级为2.7.3后会报错。 - poi
免费开源、官方文档少、学习成本大、使用复杂、生成的样式也有问题。 - aspire.doc
样式保留很好、使用方便。
未付费时,第一行会有红色水印且超过500个段落(大概25页)会被截取。
网上没有破解版。 - aspose.words
样式保留很好、使用方便。
网上有破解版。 - documents4j
样式保留很好、使用方便。
底层直接调用微软的office所以,完美保留样式
Linux系统安装LibreOffice
在线安装
CentOS:使用以下命令安装
1 | sudo yum install libreoffice |
Ubuntu:使用以下命令安装
1 | sudo apt-get install libreoffice |
执行命令需要root权限:sudo -i、su
离线安装
word转pdf验证
查看版本:
1 | libreoffice --version |
启动服务:
1 | nohup libreoffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard & |
word转pdf验证:
1 | // 安装完后进入/usr/bin 或者 usr/local/bin目录下执行。 outdir输出是一个文件夹 |
也可以安装Apache OpenOffice,二者基本差不多,更推荐LibreOffice
LibreOffice vs OpenOffice:哪个免费办公套件更适合你?
Java工具类代码
maven依赖:
1 | <!--word转pdf--> |
java代码:
1 | package com.chinamobile.cmss.services.main.util; |
LibreOffice不支持多线程文件转换
问题现象: 开两个窗口,执行相同的命令,命令行会卡住无反应。
Linux安装的版本是5.3.6.1,在windows中下载了最新版本7.6.4问题依然存在,说明和版本没关系。
参考了博客,并没有解决😭 。
后来翻到这篇博客:
使用docker来实现LibreOffice并发转换docx文件为pdf
结论: LibreOffice不支持多线程文件转换
其他
若命令行不指定,输出目录,LibreOffice默认输出到当前目录。
windows当前目录是,soffice.exe同级目录,如下所示:
linux当前目录是,输入目录的同级目录