Linux下使用Openoffice将word文档转为pdf
一、使用openoffice跟unoconv进行转换
二、安装openoffice,安装包可以从官网下载(Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar.gz)
解压,安装(解压后会有一个zh-CN的文件夹):
tar -zxvf Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar.gz
cd zh-CN/RPMS
yum localinstall *.rpm
注:这里可能需要安装一些依赖,根据提示安装即可
三、之后进入RPMS目录下的desktop-integration文件夹,运行
yum install openoffice4.0-redhat-menus-4.0-9702.noarch.rpm yum localinstall openoffice4.0-redhat-menus-4.0-9702.noarch.rpm
四、安装完成后启动服务,一般都安装在了/opt/openoffice4目录下
临时启动:
/opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
永久启动:
nohup /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
五、查看服务是否启动:
netstat -lnp |grep 8100
如果没有启动,则需要开启8100端口
如果提示缺少libXext.so.6,则yum安装
yum install libXext.x86_64 yum install freetype yum groupinstall "X Window System"
六、安装unoconv,使用该服务将word转pdf
yum install unoconv
七,安装完成后,测试
unoconv -f pdf test.docx
如无意外,则会转成同名的pdf文件
八、可能会出现中文字体无法显示,则将window下的字体复制到 /usr/share/fonts/Chinese
mkfontscale mkfontdir fc-cache –fv
另外,php可以使用exec()函数执行,只能在cli模式下运行,所以需要使用消息队列在进程中进行转换