类似百度文库pdf2swf+flexpaper解决pdf在线阅读的效果

1:工具准备
swftools.exe 下载
http://www.swftools.org/download.html 
安装至D盘
SWFTools提供了一系列将各种文件转成swf的工具:
font2swf.exe 
gif2swf.exe 
jpeg2swf.exe 
pdf2swf.exe 
png2swf.exe 
wav2swf.exe 
这里我们只使用pdf2swf.exe

flexpaper下载
http://code.google.com/p/flexpaper/ 
这里我们使用已经编译好的FlexPaper的flash版本

2:示例语言,这里我使用的两种开发环境做示例
   php示例
   由pdf生成swf文件

[php] view plaincopyprint?

  1. <?php
  2. /*
  3. * Created on 2010-11-17
  4. *
  5. * To change the template for this generated file go to
  6. * Window - Preferences - PHPeclipse - PHP - Code Templates
  7. */
  8. //获取文件所在目录
  9. $dir=dirname(__FILE__) ;
  10. //删除测试文件
  11. @unlink( $dir."\\test.swf" );
  12. //使用pdf2swf转换命令
  13. $command= "D:/SWFTools/pdf2swf.exe  -t \"".$dir."\\test.pdf\" -o  \"".$dir."\\test.swf\" -s flashversion=9 ";
  14. //创建shell对象
  15. $WshShell   = new COM("WScript.Shell");
  16. //执行cmd命令
  17. $oExec      = $WshShell->Run("cmd /C ". $command, 0, true);
  18. ?>

java示例

[java] view plaincopyprint?

  1. <%
  2. /*
  3. * Created on 2010-11-17
  4. */
  5. //获取文件所在目录
  6. String path=request.getRealPath("/");
  7. //使用pdf2swf转换命令
  8. String command= "D:/SWFTools/pdf2swf.exe  -t \""+path+"\\test.pdf\" -o  \""+path+"\\test.swf\" -s flashversion=9 ";
  9. //执行cmd命令
  10. Runtime.getRuntime().exec("cmd /c "+command);
  11. %>

以上是php,java将pdf转换成swf方式,那显示呢,这样我们会使用到flexpaper,以下是flexpaper的使用
   使用flexpaper展现swf

[javascript] view plaincopyprint?

  1. <script type="text/javascript" src="js/swfobject/swfobject.js"></script>
  2. <script type="text/javascript">
  3. var swfVersionStr = "10.0.0";
  4. var xiSwfUrlStr = "playerProductInstall.swf";
  5. var flashvars = {
  6. SwfFile : escape("test.swf"),
  7. Scale : 0.6,
  8. ZoomTransition : "easeOut",
  9. ZoomTime : 0.5,
  10. ZoomInterval : 0.1,
  11. FitPageOnLoad : false,
  12. FitWidthOnLoad : true,
  13. PrintEnabled : true,
  14. FullScreenAsMaxWindow : false,
  15. ProgressiveLoading : true,
  16. PrintToolsVisible : true,
  17. ViewModeToolsVisible : true,
  18. ZoomToolsVisible : true,
  19. FullScreenVisible : true,
  20. NavToolsVisible : true,
  21. CursorToolsVisible : true,
  22. SearchToolsVisible : true,
  23. localeChain: "zh_CN"
  24. };
  25. var params = {
  26. }
  27. params.quality = "high";
  28. params.bgcolor = "#ffffff";
  29. params.allowscriptaccess = "sameDomain";
  30. params.allowfullscreen = "true";
  31. var attributes = {};
  32. attributes.id = "FlexPaperViewer";
  33. attributes.name = "FlexPaperViewer";
  34. swfobject.embedSWF(
  35. "FlexPaperViewer.swf", "flashContent",
  36. "650", "500",
  37. swfVersionStr, xiSwfUrlStr,
  38. flashvars, params, attributes);
  39. swfobject.createCSS("#flashContent", "display:block;text-align:left;");
  40. </script>
  41. <body>
  42. <div style="position:absolute;left:10px;top:10px;">
  43. <div id="flashContent">
  44. </div>
  45. </div>
  46. </body>

通过上述方式我们可以将pdf转换成相应的swf文件,并通过flexpaper显示,防止用户下载,或copy。

pdf2swf的详细参数说明,上网百度或者Google都能查到,但是注意的最好指定flashversion 为9,防止出现一些意外的错误。
pdf2swf 中并不是所有的pdf都能转换,加密的pdf pdf2swf转换不了

flexpaper 的参数详细说明请参考 http://code.google.com/p/flexpaper/wiki/Parameters

flexpaper 常用的API  http://code.google.com/p/flexpaper/wiki/API

如果出现乱码问题可能是字符集,网上有很多的相关解决方法可以查询【我没有碰到字符集堵的问题】。

还有pdf中含有图片可能转换成swf后图片不大清晰。

word,wps,txt等文档也可以采用该方式转换,但工具不一定为swftools

上传的flexpaper附件中已经包含flexpaper中相关文件不用重新下载,只要下载swftools,并安装。
flexpaper附件中包含了pdf2swf.jsp与pdf2swf.php两个文件及flexpaper相关的组件可以在java或php环境中运行。

时间: 2024-09-30 21:04:54

类似百度文库pdf2swf+flexpaper解决pdf在线阅读的效果的相关文章

SpringMVC+springSecurity+flexPaper 配置--类似百度文库在线预览

背景:现在项目需要做一个类似百度文库的在线预览功能,在网上找了下很多人推荐使用FlexPaper,所以今天尝试学习了FlexPaper顺便集成到现有的框架中 由于网上目前的说的都不是很详细,所以现在记录在此,希望对需要的人有所帮助 准备:1. FlexPaper_2.2.4.zip 下载地址:http://flexpaper.devaldi.com/download/             2.swftools 下载地址:http://www.swftools.org/download.htm

类似百度文库在线预览文件内容技术探讨

类似百度文库之类的控件如何实现?也就是不管什么类型的文件上传后,都可以预览,而不管客户端浏览器是否安装有对应的软件.     由于项目需要,也需要一个类似的功能,于是自己也翻阅了相关资料.总结了一下前人的实现方式. 对于一般的图片文件,记事本文件,浏览器能直接打开的预览自然可以实现,不需要特殊处理 pdf文件通过js脚本也可以打开,不需要客户端安装软件具体可参考 但常用的word,excel,PPT文件如何实现预览呢? 其实各种实现预览的技术,基本都是先进行转换,例如转化为HTML文件,或者是P

利用FlashPaper实现类似百度文库功能

最近需要实现一个类似百度文库的功能,在Google上淘了一段时间,发现FlashPaper还算能够不错的实现此需求. 首先讲下思路: 1>安装FlashPaper: 2>利用java代码将doc等文件转换为swf文件: 3>页面展示swf即可. 关于FlashPaper的使用及安装这里就不再赘述,网上的资料很多,可以自行Google. 下面是java下如何利用FlashPaper将doc等文件转化为swf文件--> @param swfName 指定生成的swf文件名@param

PDF在线阅读 FlexPaper 惰性加载 ;

关于PDF在线阅读问题,比较普遍的做法是转换成swf文件来浏览:由于项目需要,就用 flexpaper 来实现了下,功能比较简单:但是文件的惰性加载确实让笔者挠头了一把! 下面是笔者的方法: 采用流的方式来读取每一页的swf文件,然后展示(pdf转换成多个swf文件网上一大把):亲自测试,100M的pdf文档,转换后在线浏览,延迟不超过1s; JSP页面 : <%@ page language="java" import="java.util.*" pageE

仿百度文库、豆丁文档在线文档带全套工具

这个是非常棒的一套在线文档分享系统源码,仿百度文库.豆丁文档网站源码,在这里完全免费提供给大家学习.在这里无需任何币就可以下载到非常多的精品源码,如果觉得好站长资源做的不错,请帮忙推荐给更多的站长朋友,并且里面还有一个设置说明图.    此套源码非常干净的,不像现在很多所谓VIP源码论坛放大量的垃圾广告文件在里面,更没有在里面加入垃圾加密广告代码.    安装以下软件前,先要在本机装好OFFICE2007   net2.0以上    windows2003 系统   退掉杀毒软件切忌! 1:安装

pdf在线阅读器

最近论坛里有人提到了,在线pdf阅读器怎么做.我百度了一下,发现很多人都很懒,程序员都很懒吗? 答案是否定的.为什么都不愿意去搜索一下呢,网上很多答案的.我这里就列举一例,大家共勉. 看代码,页面代码(herman.html): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&qu

PDF在线阅读控件多浏览器(IE,firefox,chrome,opera等)中的使用

iStylePDF是基于ActiveX技术开发的一个COM组件,一般是应用于IE浏览器中来使用,但是随着越来越多的浏览器出现,导致客户端的环境非常复杂,客户的需求又是多样化的,所以我们这里介绍了一种更快的让我们的COM组件在各种浏览器中通行无阻的方法. 浏览器现在的主流一般分为IE内核和非IE内核浏览器,IE浏览器中的使用无需太多的说明,直接应用object对象就可以使用了. 如图所示: 启动页面的时候判断下浏览器类型 非IE内核浏览器基本上都支持NPAPI插件模式,我们提供了一个简单的控件注册

在线预览Office文件【效果类似百度文库】

引言 结合上个项目和目前做的这个项目,其中都用到了Office文件在线预览,目前项目中是用到公司购买的Ntko控件,该控件每次浏览文件时则会提示安装信任插件,很繁琐,而且浏览效果不好. 提到Office文件在线预览,那么效果最好的应该就是百度文库的效果了,所以今天就忙里偷闲自己搞了下. 用到知识点 1.Office文件转化为Pdf文件.直接用.Net类库:Microsoft.Office.Interop.Excel.Microsoft.Office.Interop.Powerpoint.Micr

java web通过openoffice实现文档网页预览(类似百度文库)

最近研究了一下在网页上预览文档(包括office文档和txt.pdf),发现用openoffice+FlexPlayer实现比较理想,就参考了https://blog.csdn.net/ITBigGod/article/details/80300177#commentBox这个博客自己研究了一下.源码如下https://files.cnblogs.com/files/csdeblog/OpenOfficeDemo.zip 需要安装和,在程序中修改这个位置 同时命令行开启openoffice,需要