本文最后更新于:2024-11-18T14:20:10+08:00
效果最佳的Office转PDF解决方案
找了很久总算是找到一些可用的转换方案,废话不多说,目前靠谱的解决方案大致分为以下几类:
- 开源组件版:
openoffice
/libroffice
- 企业版API版:
WPS
/Office
- 系统强依赖版:
documents4j
+ Windows WPS
/Windows Office
- 纯净依赖版:
aspose-words
开源组件版
以libroffice
为例,需要搭建 Office 服务器,开放API端口,以供Java或其他服务调用。
优点: 开源免费
缺点: 存在转换前后效果不一致的情况、服务稳定性不佳
安装步骤
以Linux服务器为例,以下是环境搭建步骤:
- 请去官网下载安装包libreoffice
- 将下载的安装包(
Apache_OpenOffice_4.1.14_Linux_x86-64_install-rpm_zh-CN.tar.gz
)解压缩安装文件到/tmp/OpenOffice
- 切换至
/tmp/OpenOffice/zh-CN/RPMS
,执行yum localinstall *.rpm
- 装完后会在当前目录下生成一个
desktop-integration
目录。切换至desktop-integration
,执行yum localinstall openoffice4.1.14-redhat-menus-4.1.14-9811.noarch.rpm
- 切换至
/opt/openoffice4/program/
,为防止出现OpenOffice启动时报错,所以先执行安装yum install libXext.x86_64 & yum groupinstall "X Window System"
- 启动
nohup /opt/openoffice4/program/soffice -headless -accept="socket,host={{IP}},port={{Port}};urp;" -nofirststartwizard &
OpenOffice
与 libroffice
的环境搭建步骤基本一致,仅仅只是文件名称不一致而已,但大致位置全部相同
企业版API版
以WPS
为例,需要注册和认证企业账号,通过HTTP请求的方式调用接口转换。详情请了解WPS开放平台
优点: 效果好
缺点: 闭源、按转换次数收费、数据外泄
系统强依赖版
以documents4j
+ Windows WPS
为例,可通过进程通信的方式进行转换
优点: 效果好、数据不会外协
缺点: 需要Windows
系统环境、企业使用需要使用许可
搭建步骤
- 在
Windows
中安装WPS
和JRE
环境
- 编写Java代码,运行服务
代码示例
pom.xml
*.java
在其他项目中使用
纯净依赖版
可直接在项目中加入依赖即可。官网地址
优点: 效果好、数据不会外协、跨平台
缺点: 企业使用需要使用许可且收费离谱、试用版会有水印
搭建步骤
- 准备
JRE
环境
- 在项目中合适的位置调用API即可
代码示例
pom.xml
*.java
这里有惊喜!传送门