Home >php教程 >php手册 >类似百度文库pdf2swf+flexpaper解决pdf在线阅读的效果,pdf2swfflexpaper

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

WBOY
WBOYOriginal
2016-06-13 09:23:53997browse

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

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

 java示例

 

 

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


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

 

 

[javascript] view plaincopyprint?  
  1.   
  2.  
  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.   
  26.  var params = {  
  27.   
  28.     }  
  29.          params.quality = "high";  
  30.          params.bgcolor = "#ffffff";  
  31.          params.allowscriptaccess = "sameDomain";  
  32.          params.allowfullscreen = "true";  
  33.          var attributes = {};  
  34.          attributes.id = "FlexPaperViewer";  
  35.          attributes.name = "FlexPaperViewer";  
  36.          swfobject.embedSWF(  
  37.              "FlexPaperViewer.swf", "flashContent",  
  38.              "650", "500",  
  39.              swfVersionStr, xiSwfUrlStr,  
  40.              flashvars, params, attributes);  
  41. swfobject.createCSS("#flashContent", "display:block;text-align:left;");  
  42.        
  43.   
  44.    
  45.   
    "position:absolute;left:10px;top:10px;">  
  46.       
    "flashContent">  
  47.       
  
  •      
  •   
  •   

  • 通过上述方式我们可以将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转换只有一页的PDF文档,在FlexPaper没显示

    版本问题,建议卸载重装
     

    Java+FlexPaper+swfTools仿百度文库文档在线预览系统设计与实现

    用FlexPaper这个插件显示,先把word转成pdf再把pdf转成swf文件,上传上去就可以用FlexPaper播放了。注意服务器系统是不一样的,所以间隔符不一样,希望对你思路有所帮助
     

    Statement:
    The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
    Previous article:Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logsNext article:PHP5下SOAP调用实现过程,php5soap调用过程

    Related articles

    See more