CentOS6.7下安裝OpenOffice4.0實(shí)現(xiàn)php預(yù)覽office文檔

方案一:phpdocx(http://www.phpdocx.com/features)

方案二:用php調(diào)用jodconverter,通過(guò)openoffice服務(wù)將office轉(zhuǎn)換成pdf;用php調(diào)用pdf2swf生成swf格式;再用flexpaper讀取出來(lái);顯示出文庫(kù)的界面;print2flash

ssh -l root -p port IP

1)下載 openoffice4.0

wget http://iweb.dl.sourceforge.net/project/openofficeorg.mirror/4.0.0/binaries/zh-CN/Apache_OpenOffice_4.0.0_Linux_x86-64_install-rpm_zh-CN.tar.gz? 或者用http://nbtelecom.dl.sourceforge.net

安裝方式見(jiàn)http://blog.csdn.net/zhiaixiatian/article/details/42191627

2)下載 java1.7

下載頁(yè)面 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

wget http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm?AuthParam=根據(jù)鏈接替換

java安裝? rpm -ivh jdk-7u79-linux-x64.rpm\?AuthParam\=根據(jù)鏈接替換

默認(rèn)安裝在/usr/java目錄下,并且命令放在/usr/bin下面,不需要設(shè)置環(huán)境變量

3)安裝openoffice需要的其他東西

參考http://blog.csdn.net/cuker919/article/details/46389449? 的常見(jiàn)問(wèn)題

cp /usr/lib64/libXext.so.6.4.0 /opt/openoffice4/program

yum groupinstall "X Window System"

啟動(dòng)open office服務(wù):soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

返回進(jìn)程的pid,可用來(lái)關(guān)閉服務(wù)kill pid

檢查服務(wù)運(yùn)行狀態(tài) netstat -lnp |grep 8100? 或者ps -e | grep office

4)安裝jodconverter

wget http://nbtelecom.dl.sourceforge.net/project/jodconverter/JODConverter/2.2.2/jodconverter-2.2.2.zip

得到的zip文件無(wú)法使用tar解壓(一個(gè)以上內(nèi)容),需要先安裝unzip:yum install unzip

測(cè)試zip完整性可以用-t,-d path可以指定解壓目錄,更多tar和zip命令參見(jiàn)http://www.cnblogs.com/ITtangtang/p/3950481.html

解壓zip命令:unzip jodconverter-2.2.2.zip

轉(zhuǎn)換命令:java -jar jodconverter-cli-2.2.2.jar test.doc test.pdf

有如下錯(cuò)誤:ERROR: connection failed. Please make sure OpenOffice.org is running and listening on port 8100.

用telnet測(cè)試了一下8100端口可以正常訪(fǎng)問(wèn)。嘗試翻墻下載了3.x版本的jodconverter,https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jodconverter/jodconverter-core-3.0-beta-4-dist.zip

使用scp傳輸?shù)椒?wù)器端:scp -P port -v jodconverter-core-3.0-beta-4-dist.zip root@IP:/root/software/jodconverter

java -Doffice.home=/opt/openoffice4 -jar jodconverter-core-3.0-beta-4.jar -p 8100 test.doc test.pdf

開(kāi)始會(huì)報(bào)錯(cuò)說(shuō)pid=xxx的已經(jīng)啟動(dòng)了openoffice,先關(guān)閉該進(jìn)程,再轉(zhuǎn)換可以成功,說(shuō)明不是OpenOffice的問(wèn)題,繼續(xù)研究。

ok,2.2.2也搞定了,原因是服務(wù)器端的hosts里沒(méi)定義127.0.0.1=localhost,cli的源碼里指定的套接字地址是localhost,在etc/hosts里面加上就好了

5)doc轉(zhuǎn)pdf漢字無(wú)法轉(zhuǎn)換

從windows的fonts中打包字體文件,傳輸?shù)椒?wù)器,一般情況下黑體和宋體就夠了,放到/usr/share/fonts目錄下或者/opt/openoffice4/share/fonts/truetype應(yīng)該都可以

scp -P port -v /Users/naiyi/Downloads/font.zip root@IP:/root/software/fonts

解壓到對(duì)應(yīng)的目錄中:unzip font.zip -d /usr/share/fonts? 執(zhí)行fc-cache更新緩存,并重啟open office,這里沒(méi)做mkfontscale和mkfontdir這兩步操作也正常

到此為止已經(jīng)成功轉(zhuǎn)換為pdf文件,pdf在瀏覽器上顯示還有三個(gè)可選方案

方案一:chrome內(nèi)核瀏覽器可以直接渲染打開(kāi)pdf文件(內(nèi)嵌福熙idk),chrome://chrome-urls/中的plugins查看pdf插件啟用狀態(tài),可以配合https://pdfobject.com/使用

方案二:使用mozilla的pdf.js將PDF通過(guò)html5方式加載渲染(canvas和div組成)https://github.com/mozilla/pdf.js,使用教程:http://blog.csdn.net/xiangcns/article/details/42089189

方案三:使用swftools將pdf轉(zhuǎn)換為swf,然后使用flex paper在瀏覽器端顯示,以下詳述

6)安裝swftools

升級(jí)gcc相關(guān)類(lèi)庫(kù):yum install gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel(這個(gè)步驟得下載300多m,我感覺(jué)不做也行,但我還是升級(jí)了)

下載swftools:wget http://www.swftools.org/swftools-0.9.2.tar.gz 解壓:tar vxzf swftools-0.9.2.tar.gz

編譯安裝:./configure? ? ? ? ? make? ? ? ? ? make install

最后一步會(huì)出現(xiàn)rm命令選項(xiàng)錯(cuò)誤,需要修改make文件,分別是./swfs/Makefile和./swfs/Makefile.in,vim下刪除其中的-o -L后面的部分,成功后執(zhí)行文件在/usr/local/bin下

參考地址:http://blog.csdn.net/zhizaibide1987/article/details/28901511? 目前測(cè)試的pdf沒(méi)有執(zhí)行最后那個(gè)字體文件添加也能轉(zhuǎn)中文

命令行參數(shù)說(shuō)明:http://wiki.swftools.org/wiki/Main_Page

pdf2swf -T -z -t -f -s poly2bitmap -s zoom=150 -s flashversion=9 "/opt/123.pdf" -o "/opt/test/%.swf"

增加以下參數(shù)指定字庫(kù)-s languagedir=/usr/local/xpdf-chinese-simplified 字庫(kù)下載和編輯見(jiàn)http://dev.21tx.com/2012/07/04/10021.shtml

最終決定使用方案二中的pdf.js的方案實(shí)現(xiàn)pdf文件的顯示,所以不需要轉(zhuǎn)swf也不需要使用FlexPaper了,在此不再贅述。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容