在公司OA和CRM系統遇到要實如今線查看word/jpg等文件的功能,按照開發小組的要求搭建了一套解決方案:OpenOffice + JodConvertor + SWFTool+ FlexPaper,其中OpenOffice + JodConvertor用於將文檔轉化爲PDF格式文檔,SwfTool用於將PDF轉化爲SWF文檔,FlexPaper用於展現。使用這個解決方案的最大好處就是跨平臺且較爲簡單。html
openoffice須要jdk的支持,並且默認已經安裝,若是沒有,手動下載Apache_OpenOffice_4.0.1_Linux_x86-64_install-rpm_zh-CN.tar.gz
到/usr/local/src
(CentOS 6.4 x86_64):java
# tar -zxf Apache_OpenOffice_4.0.1_Linux_x86-64_install-rpm_zh-CN.tar.gz # cd zh-CN/RPMS # rpm –ivh *.rpm
拷貝字體
安裝完成後把windows(c:\windows\fonts
)下的一些經常使用字體拷貝到 /opt/openoffice4/share/fonts/truetype
目錄下,如Arial, Calibri, Courier New, Consolas等,若是你想正確的保留原doc的中文字體,還須要把 黑體、微軟雅黑、宋體 常規、新宋體 常規、幼圓、隸書、楷體 等中文字體拷貝進去(重啓進程後生效)。linux
啓動後臺進程
切換至普通用戶,如wxcrm啓動轉換進程:nginx
$ /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & # ps –ef | grep soffice
JODConverter是一個java的OpenDucument文件轉換器,能夠進行許多文件格式的轉換工具,它利用OpenOffice來進行轉換工做,它能完成如下轉換:docker
從 http://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/ 下載jodconverter-2.2.2.zip
解壓到 /opt 目錄下/opt/jodconverter-2.2.2/
。手動轉換測試,使用到的文件是安裝包內的lib/jodconverter-cli-2.2.2.jar:windows
java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /home/oa/docker.docx /home/oa/docker.pdf
至此doc等文件格式能夠成功轉換成pdf。less
swftool能夠將pdf/jpg等轉換成swf格式。搜索下載swftools-0.9.1.tar.gz
(0.9.2在安裝時可能須要錯誤處理):socket
# yum install gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel # tar vxzf swftools-0.9.1.tar.gz # cd swftools-0.9.1 # ./configure --prefix=/usr/local/swftools # make && make install
至此已安裝完預覽功能,能夠經過:工具
/usr/local/bin/pdf2swf -t docker4.pdf -o docker4.swf -T 9 -f -z
測試轉換。-t
後接待轉換的pdf文件路徑,-o
接輸出文件路徑和名稱,-T 9
設置使用flash版本9,這個設置主要是爲了跟FlexPaper的版本對應; -f
保留字體,-z
使用zlib進行壓縮,這是最經常使用的幾個命令,其餘命令能夠從SWF官網瞭解。測試
在轉換包含中文的PDF文檔成swf時,經常會由於缺乏所需的字體而出現亂碼,或者乾脆就沒有文字,就須要使用到xpdf的字體庫。
到 http://www.foolabs.com/xpdf/download.html 下載xpdf-chinese-simplified.tar.gz
,解壓到/usr/local
下,編輯add-to-xpdfrc文件,以下:
# vi /usr/local/xpdf-chinese-simplified/add-to-xpdfrc #----- begin Chinese Simplified support package (2011-sep-02) cidToUnicode Adobe-GB1 /usr/local/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode unicodeMap ISO-2022-CN /usr/local/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap unicodeMap EUC-CN /usr/local/xpdf-chinese-simplified/EUC-CN.unicodeMap unicodeMap GBK /usr/local/xpdf-chinese-simplified/GBK.unicodeMap cMapDir Adobe-GB1 /usr/local/xpdf-chinese-simplified/CMap toUnicodeDir /usr/local/xpdf-chinese-simplified/CMap fontDir /usr/share/fonts/win displayCIDFontTT Adobe-GB1 /usr/share/fonts/win/SIMHEI.ttf displayCIDFontTT Adobe-GB1 /usr/local/xpdf-chinese-simplified/CMap/gbsn00lp.ttf displayCIDFontTT Adobe-GB1 /usr/local/xpdf-chinese-simplified/CMap/gkai00mp.ttf
能夠使用xftp將經常使用的中文字體上傳到/usr/share/fonts/win,如宋體、微軟雅黑、黑體、楷體等。另外去 網上下載 gkai00mp.ttf、gbsn00lp.ttf簡體中文放到上面正確的路徑下,參考http://shitouququ.blog.51cto.com/24569/1252930。
轉換時加上-s languagedir=/usr/local/xpdf-chinese-simplified/
來加載語言包路徑。
另外據同事說在 windows 平臺安裝和轉換效果會好一點,沒有驗證。
參考