一般类似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. jenkins--Jenkins+Git+coding+maven 实现自动化测试持续集成

    1.打开Jenkins官网,下载jenkins.war https://jenkins.io/download/ 2.将该war包直接放置到Tomcat的webapp下. 3.查看自己Tomcat的端 ...

  2. cookie的介绍和自动化中cookie的操作

    1 cookie是什么? cookie: 1. Cookie是一小段的文本信息:格式:python中的字典(键值对组成) 2. Cookie产生:客户端请求服务器,如果服务器需要记录该用户状态,就向客 ...

  3. OpenMPI 集群配置

    现在有2台机器,希望可以尝试一下在多台机器上跑MPI的感觉,所以跑之前就得配置,先参考网址: https://www.cnblogs.com/awy-blog/p/3402949.html: 1. 配 ...

  4. POJ 1269 Intersecting Lines(直线求交点)

    Description We all know that a pair of distinct points on a plane defines a line and that a pair of ...

  5. “Hello world!”团队第二周贡献分规则+贡献分数分配结果

    一.贡献规则制定: (1)基础分:9 , 9 , 8 , 7 , 7 , 7 , 6(按在本次编程中承担模块的重要度制定,某一模块重要度的认定通过组内开会讨论决定) (2)会议分:每人没出勤一次会议记 ...

  6. Thunder团队第五周 - Scrum会议2

    Scrum会议2 小组名称:Thunder 项目名称:i阅app Scrum Master:胡佑蓉 工作照片: 参会成员: 王航:http://www.cnblogs.com/wangh013/ 李传 ...

  7. shiro控制登陆成功后跳回之前的页面

    登陆之后跳回之前的页面是在做登陆注册模块时遇到的一个需求,也是很有必要的.若用户直接访问登陆页面,那可以控制它直接到首页,但是要用户没有登陆直接访问自己的购物车等需要经过身份认证的页面,或者因为ses ...

  8. C#命名参数

    文章:史上最全的ASP.NET MVC路由配置,以后RouteConfig再弄不懂神仙都难救你啦~ 命名参数规范+匿名对象 routes.MapRoute(name: "Default&qu ...

  9. java---迭代器(Iterator)

    迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的Iterator功能比较简单, ...

  10. ios::sync_with_stdio(false)提高C++读写速度

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:ios::sync_with_stdio(false)提高C++读写速度     本文地址:h ...