`

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

 

缺少字符集产生乱码问题请参考该篇文章


http://xianglp.iteye.com/blog/849190

 

  • 大小: 45.9 KB
17
1
分享到:
评论
43 楼 代码有点长 2017-05-18  
试过好多个,就楼主的实现了,
42 楼 z798227085 2015-01-05  
   按楼主方法实现了 给32个赞~~
41 楼 hhg_ch 2014-12-29  
thanks  ! 
Good knowledge!
40 楼 80197675 2014-11-12  
songshuaiyang 写道
博主在吗?请问一下,我用自己的swf替换一下打开就没有内容了,是不是这个swf是写了特定表头的呢?

没看明白你什么意思?
39 楼 songshuaiyang 2014-10-21  
博主在吗?请问一下,我用自己的swf替换一下打开就没有内容了,是不是这个swf是写了特定表头的呢?
38 楼 80197675 2013-09-24  
hh777 写道
不支持 win7 吗?
为什么我打开是空的
播放器出来,内容是空的

一般是路径不对,检查下swf的路径。还有可能是版本的问题..这个你也查下你的
37 楼 hh777 2013-09-16  
不支持 win7 吗?
为什么我打开是空的
播放器出来,内容是空的
36 楼 80197675 2012-11-05  
jackyrong 写道
想问下,有什么办法甚至能保证swf不被下载呢?

这个还真没考虑过,我想可以使用一下机制,例如不让直接使用url访问swf文件,采用url加密,百度的就是一段加密串。2:对flexpaper进行下二次开发,加入你自己的一下措施,例如加密解密文件。其实这些都是相对,baidu的文档不是不让下载吗,但是你从网上可以还是可以找到下载方式的
35 楼 jackyrong 2012-10-26  
想问下,有什么办法甚至能保证swf不被下载呢?
34 楼 80197675 2012-05-10  
ysh634579583 写道
我正在实现在线阅读的功能,看到你的资料很好,但是我为什么就是打不开呢?就是有FlexPaper的框,但是没有test的文本??这应该不用装FlexPaper。。应该里面自带了吧。。。

是不是文件路径不对,你可以用个已经好的swf文件看看,能不能打开。
33 楼 ysh634579583 2012-05-09  
我正在实现在线阅读的功能,看到你的资料很好,但是我为什么就是打不开呢?就是有FlexPaper的框,但是没有test的文本??这应该不用装FlexPaper。。应该里面自带了吧。。。
32 楼 80197675 2012-05-08  
zhang1597116 写道
请问一下,防止用户下载,或copy的思路是什么。好像看不出来采用什么方法防下载的

pdf如果采用在线方式打开的话,用户是可以直接下载,并能从里面copy的东西,
采用flash方式后,大部分用户只能浏览【也可以采用一些方式把swf下载】,但是你可以采取一些其他手段进行处理可以避免,你去看下豆瓣,我记得豆瓣也是使用了flexpaper,他自己在这个基础上进行了一些二次开发。。。
31 楼 zhang1597116 2012-05-07  
请问一下,防止用户下载,或copy的思路是什么。好像看不出来采用什么方法防下载的
30 楼 80197675 2012-01-05  
antony102201 写道
运行不起来啊 报这个错
Error #2044: 未处理的 IOErrorEvent:。 text=Error #2124: 加载的文件为未知类型。

这个问题 还正没有碰到过,是那块抛出来的java,还是javacript??
29 楼 antony102201 2012-01-04  
运行不起来啊 报这个错
Error #2044: 未处理的 IOErrorEvent:。 text=Error #2124: 加载的文件为未知类型。
28 楼 tang574884050 2011-11-17  
加载一个大一点的文件为什么那么慢 几分钟还不显示
27 楼 qizhijun 2011-08-29  
学习学习,研究研究。
26 楼 skyuck 2011-08-26  
楼主,我对flex不是很熟悉,请问怎么去掉logo呢?
25 楼 80197675 2011-08-19  
shuizhijia123 写道
lz你好,我也是用的跟你一样的方法来实现百度文库效果的(pdf2swf+flexpaper)
但用pdf2swf生成的swf文件通过flexpaper浏览时,所有的文字都不可以搜索,好像是都变成了曲线图了,在网上也搜了很多,是在用swftools时,添加一些参数了,还有设置xpdf-chinese-simplified了,但是生成出来的swf文件在浏览时,依然搜索不到文本,请问你的可以吗?


只要你不是图片方式转成swf,我记得是能搜索的,你转的时候加 这个参数【 -s flashversion=9 】加了呢吗?如果没有的话 是用的好像是比较低的版本 好像是 6,转出来的swf可能有点问题。
不知道现在的pdf2swf.exe 最高支持那个版本的flash,我做的时候最高支持到9,不知道现在能支持10。如过还不行的话,你就找找pdf2swf 还有很多其他的参数,都试试【呵呵 很多参数我都没有试过】,还有flexpaper 也有一些参数 你也尝试用下。
24 楼 shuizhijia123 2011-08-03  
lz你好,我也是用的跟你一样的方法来实现百度文库效果的(pdf2swf+flexpaper)
但用pdf2swf生成的swf文件通过flexpaper浏览时,所有的文字都不可以搜索,好像是都变成了曲线图了,在网上也搜了很多,是在用swftools时,添加一些参数了,还有设置xpdf-chinese-simplified了,但是生成出来的swf文件在浏览时,依然搜索不到文本,请问你的可以吗?

相关推荐

    (Linux,window)openOffice+pdf2swf+flexpaper

    本人刚做了个项目,实现功能Linux,window)openOffice+pdf2swf+flexpaper(类百度文库) :

    .net+swftools+flexpaper pdf转swf实现在线预览 在线文库效果 可运行

    解压可以直接运行,包含完整的 swftools 和 flexpaper_flash 中的js及swf。 在线文库效果 ………………

    仿百度文库 文档转pdf在转swf,flexpaper查看swf

    仿百度文库 文档转pdf在转swf,flexpaper查看swf。转换用服务实现。

    文库openoffice.org 3+swftools+flexpaper

    文库openoffice.org 3+swftools+flexpaper word ppt excel 等转为pdf 转为swf

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

    主要介绍了pdf2swf+flexpapers实现类似百度文库pdf在线阅读的相关资料,需要的朋友可以参考下

    java实现访百度文库、道客巴巴、豆丁阅读

    经本人测试,在线预览效果还不错 真正实现在线预览 PDF SWF flexpaper 文库 在线预览 文件上传转pdf再转swf然后实现在线预览PDF,SWF文件 Txt/Word/Excel/PPT=&gt;PDF(OpenOffice+JodConverter)=&gt;SWF(pdf2swf)=&gt;...

    ASPNET FlexPaper仿百度文库读取文档源码

    最近有个项目需要用到类似百度文库以及豆丁的在线浏览组件, 网上转悠半天就找到了个flexpaper,lexpaper 支持的文档类型为swf格式。 于是乎,就想着把pdf文件转换成swf,因为装了adobereader软件的电脑ms word之...

    java在线预览仿百度文库源代码

    JAVA+FlexPaper+swfTools仿文库文档在线阅读 java将office文档pdf文档转换成swf文件在线预览 通过openoffice +swftools+ flexpaper工具

    flexpaper_swf

    最经做文档在线阅读(类似百度文库那种的),将pdf文件转换为swf,然后通过flexpaper展现出来。此源码部分主要是如何通过flexpaper将swf文件展现出来的实现,有用到网友的一些方法,在此一并感谢。 通过在改写编译...

    仿百度文库解决方案

    仿百度文库 PHP 文档分享系统 毕业设计 解决方案 概要: 仿百度文库解决方案(一)——总体思路 仿百度文库解决方案(二)——利用Jacob调用MS Office...仿百度文库解决方案(六)——利用FlexPaper显示Flash(SWF)

    仿百度文库效果

    仿百度文库 用flexpaper_flash+pdf2swf

    pdf转swf全部工具

    https://my.oschina.net/stephenzou/blog/144489 Java+FlexPaper+swfTools仿文库文档在线阅读,https://www.cnblogs.com/barros/p/3871652.html PDF解决方案(3)--PDF转SWF,在线查看文档,转pdf全部工具,可以自己...

    PDF 在线阅读器 源码

    完全仿照百度文库 开发 使用JAVA+FlexPaper+ swftools 基于MyEclipse 开发,上传pdf文件后可以在线进行查看 支持分页 缩放 全屏,查找 等等.... 开发环境: jdk1.5+Tomcat5.5 使用说明: 1.将OnLinePDF导入到...

    FlexPaper 实现百度文库效果

    FlexPaper 实现百度文库效果,服务器端需安装工具将doc等文档转换为pdf再转换为swf,到前台使用flexpaper展示

    Java仿百度文库,实现文件在线预览

    java仿百度文库、豆丁在线阅读,流程如下:Txt/Word/Excel/PPT=&gt;PDF(OpenOffice+JodConverter)=&gt;SWF(pdf2swf)=&gt;FlexPaper浏览,本人用过,很好用

    FlexPaper_2.1.0+swftools-2013-02-19-1826

    最新FlexPaper2.1.0+swftools 0.9.2,仿百度文库,pdf第二种web展示方式, FlexPaper去版权图片,附件swftools工具直接生成swf Flexpaper无法打开的解决方案

    FlexPaper java实现仿百度文库、豆丁在线阅读

    java实现仿百度文库、豆丁在线阅读,word、excl、ppt绝对可以,运用转码方式不会出现中文名称swf文件加载不上问题,特别添加了txt乱码处理、pdf在线预览功能,全源码,绝对可用!

    类似百度文库的在线读ppt,office,word,pdf

    这是通过office2010将word,office,ppt excel转换为pdf文档,结合pdf2swf.exe 把pdf转换为pdf,最后通过FlexPaper在网页上浏览。经过个人整理,把相关方面的功能实现了,需要下载网上的pdf2swf.exe,弄一个视频放...

Global site tag (gtag.js) - Google Analytics