当前位置: 首页 > news >正文

利用FlashPaper实现类似百度文库功能

最近需要实现一个类似百度文库的功能,在Google上淘了一段时间,发现FlashPaper还算能够不错的实现此需求。

首先讲下思路:

1>安装FlashPaper;

2>利用java代码将doc等文件转换为swf文件;

3>页面展示swf即可。

关于FlashPaper的使用及安装这里就不再赘述,网上的资料很多,可以自行Google。

下面是java下如何利用FlashPaper将doc等文件转化为swf文件-->

@param swfName 指定生成的swf文件名
@param documentName 需要转换为swf的文档名

String converter = "C:\\Program Files\\Macromedia\\FlashPaper 2\\FlashPrinter.exe -o C:\\struts\\swf\\"
+ swfName + ".swf C:\\struts\\document\\" + documentName;

上述代码实际上就是调用FlashPrinter.exe实现转换功能。

用过FlashPaper的朋友可能会发现FlashPaper生成的swf文件左上角有Adobe的商标,非常不雅观,而且swf还可以下载,当然这就和百度文库的在线阅读相悖了。如何隐藏商标和取消打印按钮哪?更有甚,如何定制自己的FlashPaper swf文件哪?这才是本文着重要讲的地方。

首先展示下我自己定制的swf文件:

下面将讲述如何定制swf文件:

1:下载 http://download.csdn.net/source/3439538的DefaultViewer2.swf文件(PS:这里有点推荐自己资源的意思,请不要鄙视我,O(∩_∩)O哈哈~),在此swf文件的基础上实现自己的修改。

2:利用swf反编译工具,这里推荐 硕思闪客精灵(SWFDecompiler),这个朋友们可以自己去Google下,保存SWFDecompiler反编译过的.fla文件。

3:利用falsh制作工具(如Adobe Flash Professional CS5),打开此fla文件,找到第3个帧,添加下列代码即可实现定制(具体说明可以参加我的上一篇文章FlashPaper组件__API,隐藏即false,显示即true,请根据需要自行修改):

            gMainView.showUIElement("PrevNext", true);

            gMainView.showUIElement("Print", false);

            gMainView.showUIElement("Find", true);

            gMainView.showUIElement("Tool", false);

            gMainView.showUIElement("Pop", false);

            gMainView.showUIElement("Zoom", true);

            gMainView.showUIElement("Page", true);

            gMainView.showUIElement("Overflow", true);

4:将修改过的fla导出为swf文件,命名为DefaultViewer2.swf,找到FlashPaper的安装路径X:\Program Files\Macromedia\FlashPaper 2\Interface,覆盖下面的swf文件即可。

即完成swf的自定制。

页面展示部分:

如果直接在页面上展示swf文件,那么有点IT常识的人依旧可以在客户端通过迅雷等软件捕获swf文件,然后下载下来,这样依旧不能保护swf文件。在这里我的解决方法是利用一个空swf文件来加载你需要展示的swf文件,这样即使swf被捕获也只能捕获到这个空swf文件。而且,切记空swf需要加密的,否则被反编译后依旧很容易找到你的展示文件。PS:如果朋友们有更好的展示swf的解决办法欢迎留言探讨。

相关文章:

  • 未能找到任何适合于指定的区域性或非特定区域性的资源解决
  • 怎样卸载activex控件
  • msxml3.dll 错误'800c0005' 系统未找到指定的资源错误
  • MYSQL 查询表列数
  • FlashPaper打印机未能正确安装的解决办法
  • Macromedia FlashPaper 2的安装方法(XP和Win7)
  • 解决win7下无法安装flashpaper2问题
  • Macromedia FlashPaper 2功能与使用详解
  • asp.net中获取当前url的方法
  • 再谈iframe自适应高度
  • Windows下的Objective-C集成开发环境(IDE)
  • 一步一步的详细步骤在vm虚拟机里安装苹果雪豹系统
  • CodeBlocks no such file or directory错误解决
  • Objective-C基础概要
  • Objective-C语法快速参考
  • ES6指北【2】—— 箭头函数
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Apache Spark Streaming 使用实例
  • EOS是什么
  • Fabric架构演变之路
  • hadoop集群管理系统搭建规划说明
  • java多线程
  • Java-详解HashMap
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 高度不固定时垂直居中
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 规范化安全开发 KOA 手脚架
  • 面试遇到的一些题
  • 排序算法学习笔记
  • 如何使用 JavaScript 解析 URL
  • 微信支付JSAPI,实测!终极方案
  • 硬币翻转问题,区间操作
  • 与 ConTeXt MkIV 官方文档的接驳
  • 转载:[译] 内容加速黑科技趣谈
  • raise 与 raise ... from 的区别
  • 仓管云——企业云erp功能有哪些?
  • 湖北分布式智能数据采集方法有哪些?
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • ###STL(标准模板库)
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $NOIp2018$劝退记
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (145)光线追踪距离场柔和阴影
  • (TOJ2804)Even? Odd?
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (十六)一篇文章学会Java的常用API
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)原始图像数据和PDF中的图像数据
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .“空心村”成因分析及解决对策122344
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET Remoting学习笔记(三)信道
  • .net/c# memcached 获取所有缓存键(keys)