一般类似oa或者crm等管理系统可能都会遇到需要再线查看word文档的功能,类似百度文库。

记得去年小组中的一个成员负责的项目就需要这个的功能,后面说是实现比较困难,就将就着用chm格式替代了。今天看到网上一遍文章《LINUX下面PHP文件转换》,介绍怎么样在linux下使用Openoffice 3 , Pdf2Swf tool , Jodconverter , FlexPaper,实现文档在线查看。

自己再ubuntu下进行的尝试安装,步骤如下:

因为ubuntu版本为10.0.4,openoffice已经默认安装。如果没有安装openoffice的话自行谷歌安装。
第一步:安装jodconverter,安装之后可以实现doc文档转成pdf。

文件下载地址为http://www.artofsolving.com/opensource/jodconverter
下载了之后直接解压,解压到/opt目录下/opt/jodconverter-2.2.2/,使用到的文件是安装包内的lib/jodconverter-cli-2.2.2.jar。
测试是否可以使用

  1. java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /home/php/1.doc /home/php/1.pdf

这里提示缺少java软件包,并会提示几个安装包供。选择我安装openjdk-6-jre-headless,命令如下:

  1. sudo apt_get openjdk-6-jre-headless

安装之后再运行上面doc转pdf的命名,会提示openoffice进程未启动,

因为JODConverter是通过OpenOffice來做转换的 ,所以使用前需要先安裝OpenOffice, 並且將OpenOffice的Service启动, 才可以使用. 启动命令

  1. /usr/lib/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

到此运行上面的doc转pdf的命令已经可以成功。

第二步:安装swftools,安装之后可以实现pdf文件转成swf

  1. wget http://www.swftools.org/swftools-0.9.1.tar.gz
  2. tar xzf swftools-0.9.1.tar.gz
  3. cd swftools-0.9.1
  4. ./configure
  5. make
  6. make install

测试是否可以使用

  1. pdf2swf -o /home/php/1.swf -T -z -t -f /home/php/1.pdf -s flashversion=9

第三步:用FlexPaper实现在线预览,里面有详细的demo。

第四步:使用php测试文档转换命令:
文档转pdf

  1. <?php
  2. $doc = './docs/test.txt';
  3. $formatName = './pdf/test.pdf';
  4. $command = 'java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar '.$doc.' '.$formatName;
  5. exec($command);
  6. echo 'ok';

pdf转swf

  1. <?php
  2. $pdf = './pdf/test.pdf';
  3. $swf = './swf/test.swf';
  4. $command = '/usr/local/wenku/swftools-0.9.1/src/pdf2swf -o '.$swf.' -T -z -t -f '.$pdf.' -s flashversion=9';
  5. exec($command);
  6. echo 'ok';

php脚本去运行上面的命令可能存在权限的问题无法执行
其中我测试使用的php脚本调用pdf2swf进行转换文件,生成不了。这样只需配置apache的用户权限即可,确保配置的用户有权限运行pdf2swf命令
默认安装的php环境ubuntu下配置文件是/etc/apache2/apache2.conf修改这两行,
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_USER}

配置完之后,重启apache。
/etc/init.d/apache2 restart

到此linux下的安装配置就结束了。

window下测试

下载window下使用的Pdf2Swf tool和FlexPaper,手动的将pdf文件转swf后进行在线查看的功能。

步骤整理如下:

1.安装Pdf2Swf tool之后,进行将pdf转swf。cmd命令行:
pdf2swf.exe -t D:\wamp5.3\www\test\pdf\c.pdf -s flashversion=9 -o D:\wamp5.3\www\test\swf\c.swf
-t: 源文件路径,即待转换的pdf文件路径。
-s: 设置参数,这里我们设置为 flashversion=9 ,即可以转换为9 的版本啦。
-o: 输出文件的路径,这里我输出到D:盘下

运行的结果如图所示:

2.使用FlexPaper插件显示浏览swf文件。这里下载使用的版本是1.5.8 Flash Version (release notes)。软件包内就已经有html版本的demo,稍微改动下句可以实现了。

代码如下:

  1. <script src="js/flexpaper_flash.js" type="text/javascript"></script>
  2. <a id="viewerPlaceHolder" style="width:680px;height:480px;display:block;"/></a>
  3. <script type="text/javascript">
  4. var fp = new FlexPaperViewer(
  5. 'FlexPaperViewer',
  6. 'viewerPlaceHolder', { config : {
  7. SwfFile : escape('c.swf'),
  8. Scale : 0.1,
  9. ZoomTransition : 'easeOut',
  10. ZoomTime : 0.5,
  11. ZoomInterval : 0.2,
  12. FitPageOnLoad : true,
  13. FitWidthOnLoad : false,
  14. FullScreenAsMaxWindow : false,
  15. ProgressiveLoading : false,
  16. MinZoomSize : 0.2,
  17. MaxZoomSize : 5,
  18. SearchMatchAll : false,
  19. InitViewMode : 'Portrait',
  20. PrintPaperAsBitmap : false,
  21. ViewModeToolsVisible : true,
  22. ZoomToolsVisible : true,
  23. NavToolsVisible : true,
  24. CursorToolsVisible : true,
  25. SearchToolsVisible : true,
  26. localeChain: 'en_US'
  27. }})
  28. </script>

到此就结束了,查看效果如图实现:

php 在线预览word的更多相关文章

  1. Asp.net MVC 利用(aspose+pdfobject.js) 实现在线预览word、excel、ppt、pdf文件

    在线预览word.excel.ppt利用aspose动态生成html 主要代码 private bool OfficeDocumentToHtml(string sourceDoc, string s ...

  2. java通过url在线预览Word、excel、ppt、pdf、txt文档

    java通过url在线预览Word.excel.ppt.pdf.txt文档中的内容[只获得其中的文字] 在页面上显示各种文档中的内容.在servlet中的逻辑 word: BufferedInputS ...

  3. 在线预览Word,Excel

    今天在项目中遇到了在线预览word的需求,经过查阅资料与测试发现可以解决问题,特做记录: 方式: http://view.officeapps.live.com/op/view.aspx?src= s ...

  4. Asp.Net在线预览Word文档的解决方案与思路

    前几天有个老项目找到我,有多老呢?比我工作年限都长,见到这个项目我还得叫一声前辈. 这个项目目前使用非常稳定,十多年了没怎么更新过,现在客户想加一个小功能:在线预览Word文档. 首先想到的是用第三方 ...

  5. 关于在线预览word,excel,ppt,pdf的需求处理方法。

    参考文档:http://www.cnblogs.com/wolf-sun/p/3574278.html 我选用的方案:先用office com组件生成pdf,然后使用pdf.js在线预览pdf文档.在 ...

  6. uploadify 下载组件使用技巧和在线预览 word,excel,ppt,pdf的方案

    http://www.cnblogs.com/wolf-sun/p/3565184.html uploadify 上传工具的使用技巧 http://www.cnblogs.com/wolf-sun/p ...

  7. 【OfficeWebViewer】在线预览Word,Excel~

    今天有个需求, 直接支持web端预览word,excel等文件, 查了一下很多写的比较麻烦, 这里找到一种简单的方式: http://view.officeapps.live.com/op/view. ...

  8. 在线预览word、excel文件

    直接使用微软提供的在线预览服务. 免费 文件必须为网可访问地址,因为微软的服务器需要访问该文件

  9. 在线预览word,excel,ppt

    https://view.officeapps.live.com/op/view.aspx?src=服务器地址微软提供的地址拼接自己的可以预览了拼接自己的服务器地址可以在线预览

随机推荐

  1. Python3开启Http服务

    在CMD命令行输入D: 切换到D盘, 然后输入 python -m http.server 8000 开启HTTP服务: 在浏览器地址栏输入 http://localhost:8000/

  2. java学习笔记-9.违例差错控制

      1.违例规范是告诉程序员这个方法可能抛出哪些类型的异常.他的格式在方法声明中,位于自变量(参数)列表的后面,如void f() throws tooBig, tooSmall, divZero { ...

  3. LeetCode 108——将有序数组转化为二叉搜索树

    1. 题目 2. 解答 一棵高度平衡的二叉搜索树意味着根节点的左右子树包含相同数量的节点,也就是根节点为有序数组的中值. 因此,我们将数组的中值作为根节点,然后再递归分别得到左半部分数据转化的左子树和 ...

  4. Spring Boot - Filter实现简单的Http Basic认证

    Copy自http://blog.csdn.net/sun_t89/article/details/51916834 @SpringBootApplicationpublic class Spring ...

  5. avalonJS入门

    前端神器avalonJS入门(一) posted @ 2014-10-31 17:44 vajoy 阅读(8759) 评论(42) 编辑 收藏   avalonJS是司徒正美开发和维护的前端mvvm框 ...

  6. Java 集合框架之Collection

    此图是 java 中 Collection 相关的接口与类的关系的类图.其中,类只是集合框架的一部分,比较常用的一部分. 第一次画类图,着实很费劲,不过收获也不小. 下面是相关接口和类的解释说明.文字 ...

  7. windows下cudnn的安装过程

    在CUDA安装成功之后,系统环境变量中会有如下两个变量显示:CUDA_PATH和CUDA_PATH_8 在安装完CUDA之后,到官网下载与其版本对应的CUDNN        下载地址:https:/ ...

  8. ajax 返回值问题

    错误示例:function returnFlag(){ $.ajax({ type:"post", dataType:"json", data:JSON.str ...

  9. Alpha 冲刺3

    队名:日不落战队 安琪(队长) 今天完成的任务 组织第三次站立式会议. 完成了个人信息前端界面. 明天的计划 草稿箱前端界面. 个人信息扩展界面框架. 还剩下的任务 回收站前端界面. 信息修改前端界面 ...

  10. TCP系列15—重传—5、Linux中RTO的计算

    之前我们介绍的都是协议中给出的RTO计算方法,下面我们看一下linux实现中RTO的计算方法.在linux中维护了srtt.mdev.mdev_max.rttvar.rtt_seq几个状态变量用来计算 ...