网上已有很多FlexPaper仿百度文库的一些文章,园子里也有很多大牛的详细教程。

结合这次做的例子,在这里详细记录一下使用Flexpaper实现仿百度文库的效果,及自己在跟着园子里的教程做的时候,遇到的一些小问题。希望能给初次接触或者遇到同样问题的同学们提供一些小小的帮助。(描述不足之处,请大家多多见谅,毕竟是第一次在园子里写文章)。

1.准备工作:下载FlexPaper及PDF转换工具pdf2swf.exe

Flexpaper下载地址:下载 (我下的是1.4.5 Flash Version (release notes))

Pdf2swf工具下载:下载  (我下的是swftools-2011-01-23-1815.exe下载后,安装)

2.运行官方的DEMO及Flexpaper的用法

打开刚刚下载好的Flexpaper文件夹,打开里面的例子 index.html,

(1)运行官方的例子,不能加载任何的.swf(包括例子中的swf)(如果能正常显示的话,请跳过这一步)

运行官方例子的时起,连所带的Paper.swf都不能加载成功,只见到右上角的圈圈一直在动,处于等待的状态。如下图:

这种情况,是由于Flexpaper还没获得Adobe Flash的信任,这时你可以前住http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04a.html#119065 为FlexPaper添加信任.进入网页之后 ,点击左边的 Global Security Settings papel 这个选项,然后在右边(如下图)

为你的例子所在的文件夹添加信任。然后你再运行官方的例子,就会发现可以运行成功啦。

(2)Flexpaper的用法

我们可以查看index.html源代码,这里不多说,直接说它的用法吧:

在前端的用法如下:

<!--首先要引入jquery库及相关的js-->
2 <script type="text/javascript" src="js/jquery.js"></script>3 <script type="text/javascript" src="js/flexpaper_flash.js"></script>4 <script type="text/javascript" src="js/flexpaper_flash_debug.js"></script>

 html中的代码,只需声明一个a标签即可

 <body> <div style="position:absolute;left:10px;top:10px;"><a id="viewerPlaceHolder" style="width:660px;height:480px;display:block"></a>         <script type="text/javascript">                 var fp = new FlexPaperViewer(    'FlexPaperViewer', 'viewerPlaceHolder',     <!--对应于a 标签的id-->
                         { config : {                         SwfFile : escape('ajax.swf'),  <!--这句是关键: SwfFile: 指示导入的.swf的路径-->                         Scale : 0.6,                          ZoomTransition : 'easeOut',                         ZoomTime : 0.5,                         ZoomInterval : 0.2,                         FitPageOnLoad : true,                         FitWidthOnLoad : false,                         PrintEnabled : true,                         FullScreenAsMaxWindow : false,                         ProgressiveLoading : false,                         MinZoomSize : 0.2,                         MaxZoomSize : 5,                         SearchMatchAll : false,                         InitViewMode : 'Portrait',

                         ViewModeToolsVisible : true,                         ZoomToolsVisible : true,                         NavToolsVisible : true,                         CursorToolsVisible : true,                         SearchToolsVisible : true,                           localeChain: 'en_US'                         }});</script></div></body>

 基本上,这样就可以在前端显示你的Flexpaper了.

(3)只能加载官方例子所带的swf,但不能加载其他或自己的swf

当我们想要FlexPaper加载我们自己的swf时,发现一直处于等待状态,无法显示,检查swf的路径也没错,但就是一直无法加载。这种情况,很有可能就是.swf文件的版本问题啦。我们运行SWFTools的图形工具(gpdf2swf.exe)把pdf转换为swf,但是转换后的swf也不能被Flexpaper正常加载,如果你确保路径没错的话,那就是版本的问题啦。

我们可以查看转换时swf的版本,我们可以点击 Edit->Options->Viewer

可以看到它帮我们转换为SWF的版本有 7,8两项,但这都是不能正常在FlexPaper中加载的,我们必须把pdf转换为版本为9的swf,才能让它在Flexpaper中显示。那么如何转换为9的呢?我自己是使用cmd命令行工具来手工转换的.只须在命令行添加 "-s flashversion=9" 这句,就可以转换为9的版本啦.示例如下:

参数说明如下:

(SWFTools我的默认安装路径是: E:\Program Files\)

SWFTools:pdf2swf.exe工具所在的文件夹,

-t: 源文件路径,即待转换的pdf文件路径。

-s: 设置参数,这里我们设置为 flashversion=9 ,即可以转换为9 的版本啦。

-o: 输出文件的路径,这里我输出到F:盘下

好了,这样就转换成功啦,你就可以得到一个.swf的文件,你只需拷到你下载的Demo里,配置好路径后,你就会发现FlexPaper可以正常加载你的swf啦.

在这里稍微强调一个小问题:文件夹名字带有空格

对于 -t ,-o 这两个参数,就是对于源文件路径来输出文件路径的问题,如果你的文件夹的名字中,有空格的话,这样是不能找到你的文件的。

比如说:我要转换的pdf源文件在 E:\Program Files\SWFTools\这个文件夹下,当我这样写 -t E:\Program Files\SWFTools\ajax.pdf 或者是输出文件路径写成这样 - o E:\Program Files\SWFTools\ajax.swf  这样都是不能成功的,因为这里面有文件夹名含有空格,这应该是cmd命令的问题(这个我也不是很懂,希望有高手能说一下),这里你只有在路径的前后加上又引号就能成功啦,如: -t "E:\Program Files\SWFTools\ajax.pdf" 或  -o "E:\Program Files\SWFTools\ajax.swf" 这样就OK啦.

3. Asp.net 调用pdf2swf.exe把PDF转换为SWF的用法

代码如下:

 1   private static void ConvertCmd(string fileName) 2         { 3              4             using (Process p = new Process()) 5             { 6                 string cmdStr = HttpContext.Current.Server.MapPath("~/SWFTools/pdf2swf.exe"); 7                 string savePath = HttpContext.Current.Server.MapPath("~/TestSWF/"); 8                 // @"""" 相当于一个双引号,之所以要加@"""" 就是为了防止要转换的过程中,文件夹名字带有空格,导致失败 9                 string sourcePath = @"""" + savePath + fileName + @"""";10                 string targetPath = @"""" + savePath + fileName.Substring(0, fileName.LastIndexOf(".")) + ".swf" + @"""";11                 string argsStr = "  -t " + sourcePath + " -s flashversion=9 -o " + targetPath;12                 //调用新进程 进行转换13                 ProcessStartInfo psi = new ProcessStartInfo(cmdStr, argsStr);14                 p.StartInfo = psi;15                 p.Start();16                 p.WaitForExit();17             }18         }

  其中,我的pdf文件存放在~/TextSWF/文件夹下,转换后的swf也是存放在同一文件夹下。

按照以上的做法,应该没什么问题,就可以做出类似于百度文库的效果了。

转载自:http://www.cnblogs.com/qinpeifeng107/archive/2011/08/29/2158879.html

另:java中调用exe文件

public class transferExe {public static void main(String[] args) {openWinExe();openExe();}//用 Java 调用windows系统的exe文件,比如notepad,calc之类public static void openWinExe() {Runtime rn = Runtime.getRuntime();Process p = null;try {String command = "notepad";p = rn.exec(command);} catch (Exception e) {System.out.println("Error win exec!");}}//调用其他的可执行文件,例如:自己制作的exe,或是 下载 安装的软件.public static void openExe() {Runtime rn = Runtime.getRuntime();Process p = null;try {p = rn.exec("\"D:/QQ2010.exe\"");} catch (Exception e) {System.out.println("Error exec!");}}}

api的使用:

getDocViewer().gotoPage($('#txt_pagenum').val())

getDocViewer().loadSwf($('#txt_swffile').val())

getDocViewer().fitWidth()

getDocViewer().fitHeight()

alert('Current page:' + getDocViewer().getCurrPage())

getDocViewer().nextPage()

getDocViewer().prevPage()

getDocViewer().setZoom($('#txt_zoomfactor').val())

getDocViewer().searchText($('#txt_searchtext').val())

getDocViewer().switchMode($('#txt_viewmode').val())

getDocViewer().printPaper()

getDocViewer().highlight($('#txt_highlighturl').val())

getDocViewer().postSnapshot($('#txt_postsnapshot').val())

转载于:https://www.cnblogs.com/programmer-wind/archive/2012/07/10/2919630.html

在html或asp.net中使用FlexPaper相关推荐

  1. ASP.NET中 RequiredFieldValidator(非空验证)的使用

    ylbtech-ASP.NET-Control-Validator: RequiredFieldValidator(非空验证)的使用 ASP.NET中 RequiredFieldValidator(非 ...

  2. 搜集《ASP.NET中常用的26个优化性能方法》

    1. 数据库访问性能优化 a.数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接 ...

  3. 在ASP.NET中跟踪和恢复大文件下载

    在Web应用程序中处理大文件下载的问题一直出了名的困难,因此对于大多数站点来说,如果用户的下载被中断了,它们只能说悲哀降临到用户的身上了.但是我们现在不必这样了,因为你可以使自己的ASP.NET应用程 ...

  4. ASP.NET中使用MD5和SHA1算法加密

    你的主页或者你管理的网站有各种密码需要保护,把密码直接放在数据库或者文件中存在不少安全隐患,所以密码加密后存储是最常见的做法.在ASP.NET中实现加密非常容易..NET SDK中提供了CookieA ...

  5. ASP.NET中如何防范SQL注入式攻击

    1将sql中使用的一些特殊符号,如' -- /* ; %等用Replace()过滤: 2限制文本框输入字符的长度: 3检查用户输入的合法性:客户端与服务器端都要执行,可以使用正则. 4使用带参数的SQ ...

  6. 在ASP.NET 中实现单点登录

    出自:[孟宪会之精彩世界] 发布日期:2005年1月27日 8点48分0秒 [有删改] 由于某些原因,在我们的应用中会遇到一个用户只能在一个地方登录的情况,也就是我们通常所说的单点登录.在ASP.NE ...

  7. ASP.NET中利用DataGrid的自定义分页功能和存储过程结合实现高效分页

    关键字:DataGrid.存储过程.分页 出自: http://blog.csdn.net/yzx110/archive/2004/08/18/78525.aspx 摘要:在最进的一个项目中因为一个管 ...

  8. 如何在ASP.Net 中把图片存入数据库

    介绍 可能有很多的时候,我们急需把图片存入到数据库当中.在一些应用程序中,我们可能有一些敏感的资料,由于存储在文件系统(file system)中的东西,将很容易被某些用户盗取,所以这些数据不能存放在 ...

  9. 在ASP.NET中随意创建图形信息

    如果没有一个外部组件的支持,在ASP中是不能动态创建图形的,不管它是一个图表,一个横幅或仅仅是一个图形计数器.可喜的是,这一点在ASP.NET中改变了.现在,我们只需要使用内置功能,就能够很容易动态创 ...

  10. 在asp.net中使用客户端脚本

    我们常常在asp.net中需要使用到客户端脚本,在asp.net中使用客户端脚本很容易,使用到Page的RegisterClientScriptBlock方法就行了.下面是我写的一段C#代码,用来打开 ...

最新文章

  1. UI自动化新思路-基于RUNTIME的自动化测试设想
  2. Layui layedate 弹窗插件,弹出就隐藏, 无法选择
  3. 现代软件工程 期中/期末总结博客作业
  4. java enum 长度限制_Java中的Enum的使用与分析
  5. 另一个SqlParameterCollection 中已包含 SqlParameter[解决方案]
  6. IEWebBrowser
  7. 转载 Log4j2在WEB项目中配置
  8. 华为交换机,登录密码忘记
  9. No serializer found for class JSONNull and no properties discovered to create BeanSerializer
  10. Java 枚举 ordinal 使用以及介绍
  11. python爬虫 | 爬取巨潮资讯上的上市公司招股说明书
  12. python 东方财富接口_Python从东方财富网站获取数据,python,的
  13. 液晶显示器画面模糊有毛边解决方法
  14. (27)Verilog实现倍频【方法四】
  15. 【计算机网络】超详细——华为eNSP的安装教程
  16. typescript 提示 Object is possibly null
  17. 谷歌浏览器主页图片设置
  18. 数字,字符,字符串转换
  19. STM32外扩SRAM芯片IS62wv51216兼容替换
  20. OSError: pydot failed to call GraphViz.Please install GraphViz (https://www.graphviz.org/) and ensur

热门文章

  1. 2017-7-8 OpenStack手工+oz自动制作CentOS 7.3镜像
  2. SQL 语句性能查看
  3. VS2013 启动时遇到空白窗口
  4. header简单用处
  5. 我所遭遇过的游戏中间件--Kynapse
  6. 【Xcode】编辑与调试
  7. 二进制文件转成文本保存,并可以读回
  8. 第二次作业 贺俊朋-201731062431
  9. 为什么要使用自增ID作为主键
  10. Web Service初探