下載:http://www.openoffice.org/download/other.html 下載中文的openoffice和英文的sdk,相關文件已上傳到百度網盤中:linux>centos>doc2view
php
安裝openofficehtml
tar xf Apache_OpenOffice_4.1.3_Linux_x86-64_install-rpm_zh-CN.tar.gz #到rpm文件夾中 rpm -ivh *.rpm --nodeps --force #後臺啓動 /opt/openoffice4/program/soffice -headles -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
在CentOs下面會缺乏黑體和宋體的,直接找到Windows下面的字體目錄把黑體、宋體等常見字體複製進去到目錄:/opt/openoffice4/share/fonts/truetype/
重啓生效java
tar xf Apache_OpenOffice-SDK_4.1.3_Linux_x86-64_install-rpm_en-US.tar rpm -vih *.rpm
#安裝java,下載rmp格式的 rpm -vih jre-8u111-linux-x64.rpm #查看版本 java -version whereis java #jodconverter下載解壓後移動到/opt/便可,無需安裝
這個工具太老了且必須安裝java才能使用,有些word轉換成pdf會有問題,好比遇到單頁的word轉換後沒法顯示出來,能夠考慮使用替代品unconv
安裝和使用:node
#unconv安裝,yum沒法安裝,沒有源 yum install git cd /usr/local/ git clone https://github.com/dagwieers/unoconv.git #openoffice安裝 yum install -y openoffice.org-core openoffice.org-headless openoffice.org-pyuno openoffice.org-sdk openoffice.org-writer openoffice.org-calc openoffice.org-draw libreoffice-langpack-zh-Hans.x86_64 #ppt轉換不成功,須要執行一下命令方可 yum install -y libreoffice.x86_64 #中文字體安裝 yum install font-chinese cabextract rpm-build -y #將中文字體上傳到/usr/share/fonts/chinese,而後設置全部字體權限 cd /usr/share/fonts mkdir chinese #上傳全部中文字體到/usr/share/fonts/chinese文件夾中 cd /usr/share/fonts/chinese/ chmod 644 * mkfontscale mkfontdir fc-cache -f -v #查看相關信息 /usr/local/unoconv/unoconv -V #轉換命令,/usr/local/unoconv/unoconv -f pdf -o pdfPath docPath /usr/local/unoconv/unoconv -f pdf test.docx
若是轉換ppt失敗,請確認libreoffice.x86_64是否安裝,安裝後須要重啓 解壓中文字體,中文命令亂碼問題參考linux
java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/test.doc /tmp/test.pdf
word文檔中的非本地插入的圖片和目錄會丟失,需在客戶端轉換pdfgit
後續須要將openoffice設置成/etc/rc.local方式的開機啓動,以防服務器重啓失效github
文檔轉pdf而後pdf轉swf腳本,/usr/local/bin/doc2view
,腳本內容若下:centos
#!/bin/sh #doc轉換成pdf,在php的www用戶下執行java命令須要sudo,pdf2swf不須要sudo權限 sudo /usr/bin/java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar $1 $2 && /usr/local/swftools/bin/pdf2swf -T 9 $2 -o $3 && chown www:www $2 $3 && chmod 644 $2 $3 #注意pdf2swf加上-T 9,設定在flashplayer 9下,不然會出現只有一頁的文檔沒法顯示的狀況
注意有些pdf文檔提示Unknown character collection 'Adobe-GB1'
,須要使用xpdf-chinese-simplified,使用方法 將這個腳本設置可執行:chmod +x /usr/local/bin/doc2view
使用命令: /usr/local/bin/doc2view /tmp/test.docx /tmp/test.pdf /tmp/test.swf
服務器
chmod u+w /etc/sudoers vi /etc/sudoers #找到root ALL=(ALL) ALL,複製一行,改爲如下內容,注意www是php-fpm的運行用戶 www ALL=(ALL) NOPASSWD: ALL #保存後再去掉寫權限 chmod u-w /etc/sudoers
而後php執行代碼的時候以sudo
開頭便可 php代碼,最後加上 & 防止腳本被掛起等待:less
$cmd = "/usr/local/bin/doc2view ../../uploadfile/test.docx ../../uploadfile/test.pdf ../../uploadfile/test.swf > /dev/null 2>&1 &"; pclose(popen($cmd,"r"));