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文件

  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示例

  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

  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环境中运行。

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

  1. pdf2swf+flexpaper解决pdf在线阅读(类百度文库)

    1:工具准备swftools.exe 下载 http://www.swftools.org/download.html 安装至D盘 SWFTools提供了一系列将各种文件转成swf的工具: font2 ...

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

    背景:现在项目需要做一个类似百度文库的在线预览功能,在网上找了下很多人推荐使用FlexPaper,所以今天尝试学习了FlexPaper顺便集成到现有的框架中 由于网上目前的说的都不是很详细,所以现在记 ...

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

    最近需要实现一个类似百度文库的功能,在Google上淘了一段时间,发现FlashPaper还算能够不错的实现此需求. 首先讲下思路: 1>安装FlashPaper: 2>利用java代码将 ...

  4. PDF在线阅读 FlexPaper 惰性加载 ;

    关于PDF在线阅读问题,比较普遍的做法是转换成swf文件来浏览:由于项目需要,就用 flexpaper 来实现了下,功能比较简单:但是文件的惰性加载确实让笔者挠头了一把! 下面是笔者的方法: 采用流的 ...

  5. web版pdf在线阅读器

    近期论坛里有人提到了,在线pdf阅读器怎么做.我百度了一下,发现非常多人都非常懒.程序猿都非常懒吗? 答案是否定的. 为什么都不愿意去搜索一下呢.网上非常多答案的.我这里就列举一例.大家共勉. 看代码 ...

  6. 【ASP.NET 进阶】PDF文件在线预览(类似百度文库)

    工作需要完成文档的在线预览,现在完成了第一步PDF文件的预览,步骤是通过PDF转换工具pdf2swf.exe把PDF文件转换为SWF文件,然后通过FlexPaper就可以预览了.效果如下(GIF图片太 ...

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

    引言 结合上个项目和目前做的这个项目,其中都用到了Office文件在线预览,目前项目中是用到公司购买的Ntko控件,该控件每次浏览文件时则会提示安装信任插件,很繁琐,而且浏览效果不好. 提到Offic ...

  8. 在线预览Office文件【效果类似百度文库】(转载)

    转载地址:http://www.cnblogs.com/sword-successful/p/4031823.html 引言 结合上个项目和目前做的这个项目,其中都用到了Office文件在线预览,目前 ...

  9. FlexPaper做的类似百度文库的效果

    这里有个误区,虽然我的截图这里有个FlexPaperViewer.swf,   但是这个文件还是要放在网站根目录一个. <%@ Page Language="C#" Auto ...

随机推荐

  1. 01_mvc保存时出错

    修改实体类报错 存储区更新.插入或删除语句影响到了意外的行数(0).实体在加载后可能被修改或删除.刷新 ObjectStateManager 项.   原因是 数据表中的自增主键列未赋值.

  2. php中类的声明与使用

    <?php /**php语言是支持面向对象编程的,对于面向对象的编程,学过java和C++的人都知道啊! *如果不清楚的去baidu问一下就可以了. */ //我们来定义一个类,定义类的关键字是 ...

  3. Inside Microsoft SQL Server 2008: T-SQL Querying 读书笔记之查询优化

    一. 自顶向下优化方法论 1. 分析实例级别的等待 在实例级找出什么类型的等待占用大部分的时间,通过sys.dm_os_wait_stats select wait_type, --等待类型 wait ...

  4. Spark Streaming揭秘 Day14 State状态管理

    Spark Streaming揭秘 Day14 State状态管理 今天让我们进入下SparkStreaming的一个非常好用的功能,也就State相关的操作.State是SparkStreaming ...

  5. 3DSoftRenderer

    研究了好几天基本的图形学,对于光栅化的大致过程有点了解了,很感谢网上的很多大牛的无私奉献,我就写一下这几天的总结,希望也能对网络上的知识做出一点点点的贡献. 屏幕有什么特点,无非是一排排的像素点,每个 ...

  6. EntityFramework.Extended

    记录 Entity Framework扩展,可以实现批量更新.删除,但需要EntityFramework6.0支持,需要支持低版本的EF,可下载该扩展的低版本. https://www.nuget.o ...

  7. 【BZOJ 1067】 [SCOI2007]降雨量

    Description 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意Y<Z<X,Z年的降雨量严格小于X年.例如2002,2003,2 ...

  8. Ubuntu 设置root用户登录

    由于 Ubuntu 是基于 Debian 的 linux 操作系统,在默认的情况下,是没有超级用户(superuser, root)的,但有些系统操作必须有超级用户的权限才能进行,如手动释放内存等.  ...

  9. s3c2440之cache

    cache高速缓冲存储器注意与块设备页高速缓存进行区别,一个是硬件的实现一个是软件的实现,块设备页高速缓存. s3c2440/s3c2410里面主要有一个arm920t的核,但同时包含几个协处理器,协 ...

  10. 第一个js库文件

    <!DOCTYPE html> <html xmlns=;         ;                     }                 };     })(); ...