:::

用Xvfb讓OpenOffice開機時自動啟動

使用DSpacemedia filter功能時,需要把各種文件檔轉換成PDF文件,這個功能可以藉由OpenOffice來完成。但是OpenOffice必須在圖形介面(也就是Xwindow)中才能開啟,在無法自動啟動的情況下,實在是不太方便。在網路上搜尋各種方法之後,終於找到方法了。

大致上作法如下:利用Xvfb來製作出虛擬的圖形顯示畫面,然後讓OpenOffice在這虛擬的介面開啟,就可以正常啟動OpenOffice並提供轉檔功能了。


我的作業系統是CentOS 5 Final,以下開始介紹安裝方法。

一、安裝Xvfb

可以利用yum來安裝Xvfb:(注意大小寫要正確喔)

[root@ ~] yum install Xvfb 

二、安裝OpenOffice

在安裝CentOS的時候我已經把OpenOffice安裝。如果你沒有安裝,那麼也可以利用yum來安裝OpenOffice:

[root@ ~] yum install openoffice.org-*

注意找尋一下你OpenOffice的安裝路徑,我們需要呼叫他的執行程式「soffice.bin」。你可以利用locate指令來搜尋soffice.bin看是放在哪裡路徑底下:

[root@ ~] locate /soffice.bin

CentOS預設安裝是擺在「/usr/lib/openoffice.org/program/soffice.bin」當中,記住這個路徑,在底下設定時會使用到喔!

三、設定啟動時開啟OpenOffice文件轉換服務

請建立「/etc/init.d/openoffice」,並設定執行權限為755。/etc/init.d/openoffice的檔案內容如下:

#!/bin/bash

case "$1" in
start)
     DISPLAY=:5.0
     export DISPLAY
     Xvfb :5 -screen scrn 1024x768x24 &
     /opt/openoffice.org3/program/soffice.bin "-accept=socket,host=127.0.0.1,port=8100;urp;StarOffice.ServiceManager -nofirststartwizard -nologo -headless -display:5" &
       ;;
stop)
       pkill soffice &
       pkill Xvfb &
       exit 1 &
       ;;
*)
       echo "Usage: $0 { start | stop }"
       exit 1
       ;;
esac
exit 0

注意到上面的「/usr/lib/openoffice.org/program/soffice.bin」的路徑,請改成你系統安裝OpenOffice的路徑喔!


結果還是花了一整個下午在弄這個。不管怎麼說能用好就好啦……

 

參考資料:

總共2 則留言, (我要發問)

  1. 謝謝你的分享,請問我要怎麼做才能讓這個服務去轉我的檔案呢? 把檔案丟到一個地方嗎? 還是要下什麼指令給它阿?

    回覆刪除
  2. 詳情請看JODConverter或是OpenOffice相關的文件吧!

    回覆刪除

留言工具: