在CentOS 6上使用yum安裝的ImageMagick與ghostscript8.70版,直接呼叫程式轉PDF檔時會發生錯誤,因此手動安裝新版程式並設定liferay中的外部服務;
1. 移除舊版ImageMagick與ghostscript:
yum remove imagemagick -y
yum remove ghostscript -y
2. 手動抓取新版並解壓,在這裡使用ghostscript 9.07版:
cd /tmp
wget http://downloads.ghostscript.com/public/ghostscript-9.07.tar.gz [^]
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz [^]
tar xf ghostscript-9.07.tar.gz
tar xf ImageMagick.tar.gz
3.手動安裝,安裝過程需要一些時間:
先安裝ghostscript
cd /tmp/ghostscript-9.07
./configure
make
make install
再安裝ImageMagick
cd /tmp/ImageMagick
./configure
make
sudo make install
sudo ldconfig /usr/local/lib
刪除暫存資料夾
rm -Rf /tmp/ghostscript-9.07
rm -Rf /tmp/ImageMagick
4. 安裝完成之後直接用gs指令測試轉檔功能:
查詢gs路徑: which gs
用顯示的路徑呼叫gs,並且進行轉檔測試:
如/usr/local/bin/gs -sDEVICE=pngalpha -sOutputFile=/usr/figure-%03d.png -r144 /usr/aaa.pdf
這裡%03d會依照PDF的張數去產生對應的檔名,轉換來源是/usr/aaa.pdf
若成功則會出現gs視窗並出現轉檔完成的圖片(視窗化模式限定)
5. 設定伺服器管理中的external-service外部服務:
使用which gs尋找gs程式路徑,在這裡是/usr/local/bin/gs,但在external-service中只需要設定到/usr/local/bin就好。
也可於portal-ext.properties設定imagemagick.enabled等屬性:
imagemagick.enabled=true
imagemagick.global.search.path[unix]=/usr/local/bin
啟用後,上傳帶有中文碼的PDF檔案測試看看。
P.S.(Liferay在未啟用ImageMagick與ghostscript的情況下,使用的PDFBox預覽方式在呈現一些中文PDF檔案時會以亂碼顯示)
Liferay Portal 6.2.1 GA2
Tomcat 7.0.40
CentOS 6
參考資料:http://www.liferay.com/zh/community/wiki/-/wiki/Main/Preview+Generation [^]
http://www.liferay.com/zh/community/forums/-/message_boards/message/14402973 [^]