1. 程式人生 > 實用技巧 >PHP word PDF excel 文件互轉 預覽 (linux libreoffice)

PHP word PDF excel 文件互轉 預覽 (linux libreoffice)

1--解除安裝系統當前的libreoffice

執行如下命令:
yum remove libreoffice-*

2--為了能使用映象,在etc 目錄之下的hosts檔案內加入代理。

注意沒有加的話,可能第三步無法操作.

.208.46.146 www.google.com
.208.46.146 dl.google.com
.208.46.146 dl-ssl.google.com


3--獲取rpm檔案
http://mirrors.ustc.edu.cn/tdf/libreoffice/stable
選擇6.3
然後選擇rpm
然後選擇x86_64
http://mirrors.ustc.edu.cn/tdf/libreoffice/stable/6.3/rpm/x86_64/


4--下載3個檔案
LibreOffice_6.3_Linux_x86-64_rpm.tar.gz
LibreOffice_6.3_Linux_x86-64_rpm_sdk.tar.gz
LibreOffice_6.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz


5--解壓檔案,執行如下命令
mkdir /usr/libreoffice
tar -zxvf LibreOffice_6.3_Linux_x86-64_rpm.tar.gz -C /usr/libreoffice/
tar -zxvf LibreOffice_6.3_Linux_x86-64_rpm_sdk.tar.gz -C /usr/libreoffice/

tar -zxvf LibreOffice_6.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz -C /usr/libreoffice/


6--進入到的RPMS目錄
上面兩個檔案解壓之後,/usr/libreoffice/下面會有3個資料夾,裡面都有一個RPMS資料夾

LibreOffice_6.3_Linux_x86-64_rpm
LibreOffice_6.3_Linux_x86-64_rpm_sdk

LibreOffice_6.3_Linux_x86-64_rpm_langpack_zh-CN


#進入到LibreOffice_6.3_Linux_x86-64_rpm的rpm ,執行入下命令

cd /usr/libreoffice/LibreOffice_6.3_Linux_x86-64_rpm/RPMS

7--#用yum來進行rpm的安裝,不要用rpm命令來進行安裝

yum localinstall *.rpm

【注意:

因為有 依賴關係 libgnomevfs-2.so.0()(64bit),它被軟體包 libobasis5.0-gnome-integration-6.3-2.x86_64 需要

所以不要使用rpm命令來進行安裝, rpm -ivh *.rpm 命令無法解決上面的依賴系。使用yum遇到上面的依賴關係的時候可以從網路

下載相應的包來解決依賴關係。

到此為止office成功安裝了.


8--但是我們安裝預設是英文版的,所以進行漢化.
這個時候使用這個LibreOffice_6.3_Linux_x86-64_rpm_langpack_zh-CN.tar.gz

進入到LibreOffice_6.3_Linux_x86-64_rpm_langpack_zh-CN 資料夾,然後

#執行如下命令

yum localinstall *.rpm


開啟office之後發現漢化了

執行時報錯但是不影響執行 缺少了一些依賴

/opt/libreoffice6.2/program/soffice.bin: /lib64/libdbus-1.so.3: no version information available (required by /opt/libreoffice6.2/program/libmergedlo.so)

加上去就好了 yum install libreoffice

下載pdf回到本地打開發現中文亂碼,這是因為缺少中文字型支付所致,所以先把 c:\Windows\Fonts資料夾複製一份到其它盤,然後打包成Fonts.zip,通過rz Fonts.zip 將壓縮包傳到伺服器上面。

[root@instance-32spzihn /]# cd /usr/share/fonts
[root@instance-32spzihn fonts]# rz
[root@instance-32spzihn fonts]# unzip Fonts.zip
[root@instance-32spzihn fonts]# mv Fonts win
[root@instance-32spzihn fonts]# cd win
[root@instance-32spzihn win]# chmod -Rf 755 *
[root@instance-32spzihn win]# mkfontscale
[root@instance-32spzihn win]# mkfontdir
[root@instance-32spzihn win]# fc-cache –fv

若沒有生效可以試下重啟伺服器,再重新執行轉換命令就可以了。
完成對檔案轉換後,那接下來就要將此功能加入專案開發上面,當前需要加入到一個php專案:

$cmd = '/usr/bin/libreoffice --invisible --convert-to pdf zzz.docx';
if (function_exists('exec')){
@exec($cmd, $output, $retval);
}

if ($retval > 0){
exit('process_failed');

關於LibreOffice介紹一下:

LibreOffice 能夠與 Microsoft Office 系列以及其它開源辦公軟體深度相容,且支援的文件格式相當全面

1、文字文件:*.odm, *.sgl, *.odt,*.ott, *.sxw, *.stw, *.fodt, *.xml, *.docx,*.docm, *.dotx, *.dotm, *.doc, *.dot, *.wps, *.pdb, *.hwp, *.html, *.htm, *.lwp, *.psw, *.rft, *.sdw, *.vor, *.txt, *.wpd ,*.oth.

2、電子表格:*.ods, *.ots, *.sxc, *.stc, *.fods, *.xml, *.xlsx, *.xlsm, *.xltm, *.xltx, *.xlsb, *.xls, *.xlc, *.xlm, *.xlw, *.xlk, *.sdc, *.vor, *.dif,*.wk1, *.wks, *.123, *.pxl, *.wb2, *.csv.

3、簡報:*.odp, *.otp, *.sti, *.sxd, *.fodp, *.xml, *.pptx, *.pptm, *.ppsx, *.potm, *.potx, *.ppt, *.pps, *.pot, *.sdd, *.vor, *.sdp.

4、繪圖:*.odg, *.otg, *.sxd, *.std, *.sgv,*.sda, *.vor, *.sdd, *.cdr, *.svg, *.vsd, *.vst

5、網頁:*.html, *.htm, *.stw

6、主控文件:*.sxg

7、公式:*.odf, *.sxm, *.smf, *.mml

8、資料庫文件:*. odb