pdf2swf+flexpapers实现类似百度文库pdf在线阅读

 更新时间:2014年10月28日 17:14:04   投稿:hebedich  
这篇文章主要介绍了pdf2swf+flexpapers实现类似百度文库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 
/*
 * Created on 2010-11-17
 *
 * To change the template for this generated file go to
 * Window - Preferences - PHPeclipse - PHP - Code Templates
 */ 
 //获取文件所在目录 
 $dir=dirname(__FILE__) ; 
 //删除测试文件 
 @unlink( $dir."\\test.swf" ); 
 //使用pdf2swf转换命令 
 $command= "D:/SWFTools/pdf2swf.exe  -t \"".$dir."\\test.pdf\" -o  \"".$dir."\\test.swf\" -s flashversion=9 "; 
 //创建shell对象 
 $WshShell   = new COM("WScript.Shell"); 
 //执行cmd命令 
 $oExec      = $WshShell->Run("cmd /C ". $command, 0, true); 
?>

 java示例
 

复制代码 代码如下:

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

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

复制代码 代码如下:

<script type="text/javascript" src="js/swfobject/swfobject.js"></script> 
 <script type="text/javascript"> 
         var swfVersionStr = "10.0.0"; 
         var xiSwfUrlStr = "playerProductInstall.swf"; 
         var flashvars = { 
               SwfFile : escape("test.swf"), 
   Scale : 0.6, 
   ZoomTransition : "easeOut", 
   ZoomTime : 0.5, 
     ZoomInterval : 0.1, 
     FitPageOnLoad : false, 
     FitWidthOnLoad : true, 
     PrintEnabled : true, 
     FullScreenAsMaxWindow : false, 
     ProgressiveLoading : true, 
     PrintToolsVisible : true, 
     ViewModeToolsVisible : true, 
     ZoomToolsVisible : true, 
     FullScreenVisible : true, 
     NavToolsVisible : true, 
     CursorToolsVisible : true, 
   SearchToolsVisible : true, 
     localeChain: "zh_CN" 
   }; 
 
 var params = { 
 
    } 
         params.quality = "high"; 
         params.bgcolor = "#ffffff"; 
         params.allowscriptaccess = "sameDomain"; 
         params.allowfullscreen = "true"; 
         var attributes = {}; 
         attributes.id = "FlexPaperViewer"; 
         attributes.name = "FlexPaperViewer"; 
         swfobject.embedSWF( 
             "FlexPaperViewer.swf", "flashContent", 
             "650", "500", 
             swfVersionStr, xiSwfUrlStr, 
             flashvars, params, attributes); 
swfobject.createCSS("#flashContent", "display:block;text-align:left;"); 
     </script> 
 
 <body> 
  <div style="position:absolute;left:10px;top:10px;"> 
      <div id="flashContent"> 
      </div> 
     </div> 
</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环境中运行。

相关文章

  • java中使用数组进行模拟加密的方法

    java中使用数组进行模拟加密的方法

    这篇文章主要介绍了java中使用数组进行模拟加密的方法,需要的朋友可以参考下
    2014-08-08
  • 剑指Offer之Java算法习题精讲二叉树专题篇上

    剑指Offer之Java算法习题精讲二叉树专题篇上

    跟着思路走,之后从简单题入手,反复去看,做过之后可能会忘记,之后再做一次,记不住就反复做,反复寻求思路和规律,慢慢积累就会发现质的变化
    2022-03-03
  • Java基础之集合框架详解

    Java基础之集合框架详解

    这篇文章主要介绍了Java基础之集合框架详解,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Java安全后端返回文件流方式

    Java安全后端返回文件流方式

    这篇文章主要介绍了Java安全后端返回文件流方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • IntelliJ IDEA 2020.2 全家桶及以下版本激活工具大全【喜讯】

    IntelliJ IDEA 2020.2 全家桶及以下版本激活工具大全【喜讯】

    这篇文章主要介绍了IntelliJ IDEA 2020.2 全家桶及以下版本激活工具大全【喜讯】,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Java的jstack命令使用示例详解

    Java的jstack命令使用示例详解

    jstack 命令非常的简单,我们可以通过 jstack -h 或者 jstack -help 命令查看它的用法详情,今天通过本文重点给大家介绍Java的jstack命令使用,感兴趣的朋友一起看看吧
    2022-03-03
  • eclipse上配置Maven的图文教程(推荐)

    eclipse上配置Maven的图文教程(推荐)

    下面小编就为大家分享一篇eclipse上配置Maven的图文教程(推荐),具有很好的参考价值。希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • Java实现五子棋游戏

    Java实现五子棋游戏

    这篇文章主要为大家详细介绍了Java实现五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • Java死锁的产生原因及解决方法总结

    Java死锁的产生原因及解决方法总结

    Java中的死锁是指多个线程同时占用一些共享资源且彼此相互等待,从而导致所有的线程都被阻塞,不能继续执行程序的情况,本文小编给大家介绍了Java死锁的产生原因及解决方法总结,需要的朋友可以参考下
    2023-11-11
  • Java中报错org.springframework.jdbc.UncategorizedSQLException的多种解决方法

    Java中报错org.springframework.jdbc.UncategorizedSQLException的多种

    本文主要介绍了Java中报错org.springframework.jdbc.UncategorizedSQLException的多种解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06

最新评论