zoukankan      html  css  js  c++  java
  • Web方式预览Office/Word/Excel/pdf文件解决方案

    最近在做项目时需要在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"}


         
       

  • 相关阅读:
    Android项目打包
    Video Demystified
    C指针与python bytes 互转
    运筹学笔记 3 线性代数基础
    三角网格上的寻路算法Part.2—A*算法
    三角网格上的寻路算法Part.1—Dijkstra算法
    从二维点集重建平面形状-浅议凹包算法
    二值图像膨胀腐蚀算法的几种实现方式
    浅议像素化与体素化Part.1——平面图形像素化
    寻找图像中的局部极大点
  • 原文地址:https://www.cnblogs.com/heimirror/p/4510802.html
Copyright © 2011-2022 走看看