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

最近在作項目時須要在Web端預覽一些Office文件,通過在萬能的互聯網上一番搜索肯定並解決了。html

雖然其中碰到的一些問題已經經過搜索和本身研究解決了,可是以爲有必要將整個過程記錄下來,以方便本身之後查找,也方便之後碰到相同問題的朋友。python

首先你們都知道在瀏覽器中是沒法直接直接打開office文件查看的(IE除外),因此咱們須要將office文件轉換成其餘格式來預覽。git

因此個人實現方法是 office文件=>pdf文件=>swf文件=>flexpaper中瀏覽github

咱們用到的軟件以下:ubuntu

一、libreoffice瀏覽器

二、swftoolsruby

三、flexpaper     併發

四、sharp_office  一個gemapp

五、ImageMagickpost

 環境: ubuntu 14.04


1、安裝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文件亂碼問題解決辦法

2、安裝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 (以前碰到問題時的記錄)     

3、FlexPaper,這是一個開源輕量級的在瀏覽器上顯示各類文檔的組件,被設計用來與swftools一塊兒使用,只須要下載而後嵌入到網頁中便可。

4、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

5、ImageMagic
      因爲sharp_office轉換office文件至pdf文件和swf文件時,會同時調用ImageMagic生成縮略圖,因此須要安裝它
      sudo apt-get install imagemagick libmagickcore-dev gs

6、轉換程序

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"}
相關文章
相關標籤/搜索