加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

仿百度,豆瓣读书文库阅读器

发布时间:2020-12-15 05:16:54 所属栏目:百科 来源:网络整理
导读:FlexPaper 是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。 另外你也可以通过将一些例如Word、PPT等文档转成PDF,然后实现在
FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。它可以被当做Flex的库来使用。

另外你也可以通过将一些例如Word、PPT等文档转成PDF,然后实现在线浏览。


利用 ?FlexPaper?基于Flex实现,可以在线浏览PDF文档,而不要PDF软件支持。它支持的扩展名就是.swf,所以再需要一款软件,使得PDF自动转换为SWF格式。它就是 swftools ?。操作很简单,首先第一步:
下载swftools http://www.swftools.org/download.htm
安装后可以先试下里面的命令
C:SWFToolspdf2swf Paper3.pdf -o Paper3.swf?
当然安装目录自己指定,Papaer3.pdf也是自己指定路径。
第二步:下载 http://flexpaper.devaldi.com/download/Flash版本
下载完后打开可以发现里面有个index.html,查看内容可以得到一段script脚本
<script type="text/javascript" src="js/flexpaper_flash.js"></script>
? ? </head>?
? ? <body>?
? ??<div style="position:absolute;left:10px;top:10px;">
? ? ? ?<a id="viewerPlaceHolder" style="width:680px;height:480px;display:block"></a>
? ? ? ?
? ? ? ?<script type="text/javascript">?
var fp = new FlexPaperViewer(
'FlexPaperViewer',
'viewerPlaceHolder',{ config : {
SwfFile : escape('Paper.swf'),51)">Scale : 0.6,?
ZoomTransition : 'eaSEOut',51)">ZoomTime : 0.5,51)">ZoomInterval : 0.2,51)">FitPageOnLoad : true,51)">FitWidthOnLoad : false,51)">FullScreenAsMaxWindow : false,51)">ProgressiveLoading : false,51)">MinZoomSize : 0.2,51)">MaxZoomSize : 5,51)">SearchMatchAll : false,51)">InitViewMode : 'Portrait',51)">PrintPaperAsBitmap : false,51)">ViewModeToolsVisible : true,51)">ZoomToolsVisible : true,51)">NavToolsVisible : true,51)">CursorToolsVisible : true,51)">SearchToolsVisible : true,51)">??localeChain: 'en_US'
}});
? ? ? ?</script>
? ? ? ? </div>
参数基本可以参考英文,里面的Paper.swf就是调用的文件。
我现在放一个自己的PDF文件,然后运行这段程序可以看到

?


?

很简单的,如果没有加载文件,那么就是要到 http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065
将文件添加为信任才行。

?


一. 使用PDF2SWF准备好你的文档

首先要将PDF转成SWF,这步可以使用开源的SwfTools自动完成

1.下载安装 SwfTools,当前最新版本是0.9
2. 转换PDF到SWF,可以通过命令行的方式,例如将Paper3.pdf转换成Paper3.swf
C:SWFToolspdf2swf Paper3.pdf -o Paper3.swf

二. 使用已经编译好的FlexPaper的flash版本浏览你的文档

  1. 下载并解压出已经编译好的FlexPaper
  2. zip文件包含一个例子文件叫做FlexPaperViewer.html,它向你展示了需要传给FlexPaper的 基本参数
    var params = {
    SwfFile : "Paper.swf",
    Scale : 0.6
    }
    swfobject.embedSWF("FlexPaperViewer.swf","cb","500","9.0.0","js/swfobject/expressInstall.swf",params);

    //SwfFile参数是你想显示的文件,Scale是0-1之间的数,表示显示的放大参数
  3. 复制你创建出来的swf和PDF2SWF到解压缩出的相同目录
  4. 确定你添加了FlexPaperViewer.swf

三. 在Flex中使用FlexPaper

1. 下载FlexPaper?SWC,添加到你的Flex项目libs中
2. 复制你用PDF2SWF创建的SWF到你的bin-debug目录,如Paper3.swf,添加FlexPaper组 件到你的flex代码中Xml代码

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"?
??? layout="absolute"
??? width="800" height="500"
??? xmlns:flexpaper="com.devaldi.controls.flexpaper.*">
????
??? <flexpaper:FlexPaperViewer width="800" height="500"?
??? ??? Scale="1" SwfFile="Paper3.swf" />
????
</mx:Application>


?网友写的一个方法可以利用JAVA转化pdf为swf:

[java]? view plain copy
  1. /**?
  2. ?????*?将pdf文件转化成swf文件??
  3. ?????*?@param?fileName?文件的绝对路径?
  4. ?????*?@param?destPath?目标路径?
  5. ?????*?@return?-1:源文件不存在,-2:格式不正确,-3:发生异常,0:转化成功??
  6. ?????*?@author?fanglm?created?on?Jul?9,?2010?1:13:04?PM?
  7. ?????*/??
  8. ????public?static?int?ConvertPdfToSwf(String?fileName,String?destPath){??
  9. ????????String?destName?=?"",fileExt?=?"";??
  10. ????????StringBuffer?command?=?new?StringBuffer();??
  11. ????????fileExt?=?fileName.split("//.")[fileName.split("//.").length-1].toLowerCase();??
  12. ????????try{??
  13. ????????????File?file?=?new?File(fileName);??
  14. ????????????if(!file.exists()){//判断源文件是否存在??
  15. ????????????????return?-1;??
  16. ????????????}else?if(!fileExt.equals("pdf")){//判断文件是否是pdf格式的文件??
  17. 2;??
  18. ????????????}??
  19. ????????????else{??
  20. ????????????????String?swftoolsPath?=?"D://SWFTools";//获取pdf转swf工具的路径??
  21. if(!swftoolsPath.substring(swftoolsPath.length()-1,?swftoolsPath.length()).equals("//")){??
  22. ????????????????????swftoolsPath?=?swftoolsPath+"//";????//在目录后加?"/"??
  23. ????????????????}??
  24. ????????????????if(!destPath.substring(destPath.length()-"//")){??
  25. ????????????????????destPath?=?destPath+"//";????//在目录后加?"/"??
  26. ????????????????}??
  27. ????????????????File?destFile?=?new?File(destPath);??
  28. if(!destFile.exists()){//目标文件路径如果不存在,则创建目录??
  29. ????????????????????destFile.mkdirs();??
  30. ????????????????destName?=?file.getName().substring(0,?file.getName().length()-4)+".swf";//目标文件名称??
  31. ????????????????command.append(swftoolsPath).append("pdf2swf.exe?").append(fileName).append("?-o?").append(destPath).append(destName);??
  32. ????????????????Process?pro?=?Runtime.getRuntime().exec(command.toString());??
  33. ????????????????BufferedReader?buffer?=?new?BufferedReader(new?InputStreamReader(pro.getInputStream()));??
  34. while(buffer.readLine()!=null);??
  35. return?pro.exitValue();??
  36. ????????????}??
  37. ????????}catch?(Exception?e){??
  38. ????????????e.printStackTrace();??
  39. 3;??
  40. ????????}??
  41. ????}??

如果遇到 PDF2SWF转换只有一页的PDF文档,在FlexPaper不显示,在执行的命令后面加上“-T 9”转换成flash 9 格式即可解决。

原作者:http://blog.csdn.net/yaerfeng/article/details/7253103

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读