linux下openoffice的安裝部署

一、背景故事

  這兩天遇到一個大坑,客戶要做office 文檔在線預覽功能,於是乎就要把office文檔轉換成pdf交給前端顯示。

     在某度找了一圈都說openOffice+jodconverter 可以搞定這個事情。代碼倒是很好找,不過版本很多,各類jar包也很多,但嘗試下來發現,轉化效果很一般,複雜的excel也無法成功。有同事建議放到服務器上效果可能好些,於是就開始折騰在服務器上安裝OpenOffice這個事情。網上各種找大神的博文,發現安裝起來不是很順暢,就寫了這篇隨筆,記錄一下,遇到的問題,方便自己以後查看。

二、操作步驟

  1.http://www.openoffice.org/zh-cn/download/ 去官網鏈接下載linux版本的openOffice 以4.1.5 版本爲例。

  2.將壓縮包上傳至服務器上,並進行解壓安裝。

 

1  tar -zxvf  對應的壓縮包名字

2  cd 進入解壓後的 /zh-cn/RPMS

3  yum localinstall *.rpm

4  cd desktop-integration

5  rpm -ivh openoffice4.1.5-redhat-menus-4.1.5-9789.noarch.rpm

 

 默認會安裝在/opt目錄下。

3.啓動服務 

1 /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard  臨時啓動

2 nohup /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &  後臺啓動

 

  端口號根據自己項目實際來確定。

  後臺啓動會一直佔用內存,據各路大神說 大概100M,我自己沒測過具體值不清楚。

  有的程序是需要預先啓動openOffice 服務的,有的則在代碼裏自己啓動服務。

  4.查看進程

netstat -lnp |grep 端口號

  大概顯示成這樣就算啓動完了。

tcp  0  0 127.0.0.1:8100  0.0.0.0:*   LISTEN      14362/soffice.bin

三、啓動報錯問題

1.裝完臨時啓動看下,可能會報錯:

error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory

執行命令:yum -y install libXext

  2.裝完openoffice後啓動服務可能會報錯:

no suitable windowing system found, exiting

  從字面上的意思就是缺少一個窗口化的系統

執行命令:yum groupinstall "X Window System"

四、執行文件轉換後的pdf出現中文未能正常顯示問題

  1.  /usr/java/jdk1.8.0_91/jre/lib/fonts下新建路徑:fallback

$  cd $JAVA_HOME/jre/lib/fonts/

$  mkdir fallback

 2.  上傳字體到fallback文件夾

將字體:simhei.ttf 黑體、simsun.ttc 宋體(windows下找下)

上傳至$JAVA_HOME/jre/lib/fonts/fallback路徑下。

  1.  查看系統字體文件路徑

$  cat /etc/fonts/fonts.conf

<!-- Font directory list -->

<dir>/usr/share/fonts</dir>

<dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir> <dir>/usr/local/share/fonts</dir>

<dir>~/.fonts</dir>

  4.   拷貝字體

將 /usr/java/jdk1.8.0_91/jre/lib/fonts的全部內容

拷貝到上一步查看的路徑下, 如上一步我的字體路徑爲:/usr/share/fonts

  5.    更新緩存

執行  fc-cache

  6.   殺掉openoffice進程

$  ps -ef | grep openoffice

root     14385 14366  0 15:27 pts/0    00:00:00 /opt/openoffice4/program/soffice.bin -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard

root     22031  2327  0 16:34 pts/0    00:00:00 grep openoffice

$  kill -9 14385

 7.  重啓後臺運行openoffice

$  soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章