Web方式預覽Office/Word/Excel/pdf檔案解決方案

芬奇發表於2015-05-17

最近在做專案時需要在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"}

 


     
   

相關文章