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"}
相关文章
相关标签/搜索