最近在做項目時需要在Web端預覽一些Office文件,經過在萬能的互聯網上一番搜索確定並解決了。
雖然其中碰到的一些問題已經通過搜索和自己研究解決了,但是覺得有必要將整個過程記錄下來,以方便自己以后查找,也方便以后碰到相同問題的朋友。
首先大家都知道在瀏覽器中是無法直接直接打開office文件查看的(IE除外),所以我們需要將office文件轉換成其他格式來預覽。
所以我的實現方法是 office文件=>pdf文件=>swf文件=>flexpaper中瀏覽
我們用到的軟件如下:
1、libreoffice
2、swftools
3、flexpaper
4、sharp_office 一個gem
5、ImageMagick
環境: ubuntu 14.04
一、安裝libreoffice
sudo apt-get install python-software-properties
sudo apt-add-repository ppa:libreoffice/libreoffice-4-0
sudo apt-get install libreoffice
如果是ubuntu server環境,這里需要安裝一個中文字體,否則轉換出來的PDF文件中的中文將全部是亂碼,具體安裝方法參考這里:libreoffice轉換文件為pdf文件亂碼問題解決辦法
二、安裝swftools
下載 http://www.swftools.org/download.html
解壓 tar -zvxf swftools-0.x.x.tar
編譯 cd swftools-0.x.x;./configure;make 安裝 make install
可能會報錯
rm:無效選項 -- o Try 'rm --help' for more information. make[1]: *** [install] 錯誤 1
編輯 swfs/Makefile 和 swfs/Makefile.in兩個文件 找到 rm 命令,去掉后面的 -o -L 保存,再次install即可
詳情可以參考這里: ubuntu下 編譯安裝swftools (之前碰到問題時的記錄)
三、FlexPaper,這是一個開源輕量級的在瀏覽器上顯示各種文檔的組件,被設計用來與swftools一起使用,只需要下載然后嵌入到網頁中即可。
四、sharp_office 這是一個ruby gem,我們使用它來調用命令轉換office文件到pdf文件和swf文件
gem install sharp_office
由於我需要在老版本的ruby中使用,當前這個sharp_offce只適用於ruby1.9以上版本,所以我基於sharp_offce修改並發布了我的版本sharp_office_bruce
所以現在可以這樣安裝 gem install sharp_office_bruce
五、ImageMagic
由於sharp_office轉換office文件至pdf文件和swf文件時,會同時調用ImageMagic生成縮略圖,所以需要安裝它
sudo apt-get install imagemagick libmagickcore-dev gs
六、轉換程序
require 'sharp_office' SharpOffice.process('/Users/apple/Documents/test.doc') => {:status=>"ok", :pdf_path=>"/Users/apple/Documents/test-doc.pdf", :swf_path=>"/Users/apple/Documents/test-doc.swf", :cover_path=>"/Users/apple/Documents/test-doc.png"} SharpOffice.process('/Users/apple/Documents/test.doc', {pages: '1-20'}) => {:status=>"ok", :pdf_path=>"/Users/apple/Documents/test-doc.pdf", :swf_path=>"/Users/apple/Documents/test-doc.swf", :cover_path=>"/Users/apple/Documents/test-doc.png"}
