1.首先下载FlexPaper的源码。下载地址
2.本人不懂flash,只是百度下,然后自己瞎弄弄的。我用的flash build 4.5
提供个key:1499-4181-9296-6452-2998-3656

首先在flash build中新建一个flex项目,第一步填写项目名称-flexpaper,第二步直接默认,最后一步需要注意下。

选择合并到代码中,要不然你的bin-debug目录下面会出现很多其他的swf文件
然后把你1步下载下来的源码解压。

把这三个目录全部复制到你刚才建立的flex项目根目录下。最后结果是这样的:

这时候打开src目录下面默认包下的flexpaper.mxml文件,加入如下代码,里面paper.swf是从pdf转换过来的。
然后点击项目的属性,将附加的编译参数修改成如下所示,-source-path=locale/{locale}

我记得这些全部完成以后,好像有个文件一处会有错误,如果出错文件前面会有个红×,找到它,然后把那句话去掉,就是一个属性设置。没什么影响。
然后就可以run了。
修改:
1.右上角有一个FP,点击以后出现about
找到如下所示的文件:

打开,搜索bttnInfo,一共就三句,全部注释掉。然后在run,就会发现右上角的FP没了。(print也是在这个文件里面修改的,大家自己看看吧)

2.修改右下角的logo,如下

找到如下文件,打开,找到createDisplayContainer这个函数。在addChild(_skinImgDo);后面加入_skinImgDo.visible = false;(虽然不懂,但是这些看看也都能知道个大概)

好了。修改完毕。至于其他的修改,大家可以自己看看源文件。反正功能老外都帮我们现实了,我们只要修修改改而已。
补充一点,如果想用,入下图:

找到项目bin-debug下面的flexpaper.swf。(其他的swf就是我之前没有合并到代码中的那些swf,如果没有合并的需要把这些swf文件全部一起拷贝)
放在你下载回来的例子中,替换如下:

把刚才的文件改成这个名字就OK了。然后在运行就会发现可以了。
上面的方法似乎是把flash已经写死了,下面的这种方法编译出来的swf应该是可以动态加载flash的。(从网上找到的)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:fp="com.devaldi.controls.flexpaper.*"
layout="absolute" width="100%" height="100%"
applicationComplete="initApp();">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
public var _aid = 0;//文档ID
[Bindable]
public var _Scale:Number = 1;//缩放比例
[Bindable]
public var _SwfFile:String = "";//SWF文件路径
[Bindable]
public var _ZoomTransition:String = "easeOut";
[Bindable]
public var _ZoomTime:Number = 0.6;
[Bindable]
public var _ZoomInterval:Number = 0.1;
[Bindable]
public var _FitPageOnLoad:Boolean = false;//加载后适合高度
[Bindable]
public var _FitWidthOnLoad:Boolean = false;//加载后适合宽度
[Bindable]
public var _PrintEnabled:Boolean = true;//是否支持打印
[Bindable]
public var _FullScreenAsMaxWindow:Boolean = false;//是否支付全屏
[Bindable]
public var _ProgressiveLoading:Boolean = false;//是否延迟加载
[Bindable]
public var _localeChain:String = "zh_CN";//语言
private var isFocus:Boolean = false;
//初始化参数
private function initApp():void{
var params:Object = Application.application.parameters;
_Scale = getNumber(params, "Scale", 1);
_SwfFile = getString(params, "SwfFile", "Paper.swf");
_ZoomTransition = getString(params, "ZoomTransition", "easeOut");
_ZoomTime = getNumber(params, "ZoomTime", 0.6);
_ZoomInterval = getNumber(params, "ZoomInterval", 0.1);
_FitPageOnLoad = getBoolean(params, "FitPageOnLoad", false);
_FitWidthOnLoad = getBoolean(params, "FitWidthOnLoad", false);
_PrintEnabled = getBoolean(params, "PrintEnabled", true);
_FullScreenAsMaxWindow = getBoolean(params, "FullScreenAsMaxWindow", false);
_ProgressiveLoading = getBoolean(params, "ProgressiveLoading", true);
_localeChain = params["localeChain"];
//注册事件监听
this.addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);
this.addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);
//开放给外部(javascript)调用
ExternalInterface.addCallback("hasFocus", hasFocus);
//ExternalInterface.addCallback("focus", focus);
ExternalInterface.addCallback("setViewerFocus", setViewerFocus);
}
private function onMouseOver(event:MouseEvent):void{
this.isFocus = true;
}
private function onMouseOut(event:MouseEvent):void{
this.isFocus = false;
}
public function hasFocus():Boolean{
//Alert.show("hasFocus");
return isFocus;
}
public function setViewerFocus(isFocus:Boolean):void{
//Alert.show("setViewerFocus");
this.paperViewer.setViewerFocus();
}
/**
*
* 获取String类型参数
* 如果没有,则返回默认值
**/
private function getString(params:Object, name:String, def:String):String{
if(params[name] != null){
return params[name];
}
return def;
}
private function getNumber(params:Object, name:String, def:Number):Number{
if(params[name] != null){
return params[name];
}
return def;
}
private function getBoolean(params:Object, name:String, def:Boolean):Boolean{
//Alert.show("比较:"+name);
if(params[name] != null){
return params[name] == "true";
}
return def;
}
]]>
</mx:Script>
<!--mx:Panel x="165" y="76" width="250" height="200" layout="absolute" title="一个人">
<mx:Label x="59" y="37" text="{Scale}" width="88"/>
</mx:Panel-->
<fp:FlexPaperViewer id="paperViewer"
width="100%"
height="100%"
Scale="{_Scale}"
SwfFile="{_SwfFile}"
ZoomTransition="{_ZoomTransition}"
ZoomTime="{_ZoomTime}"
ZoomInterval="{_ZoomInterval}"
FitPageOnLoad="{_FitPageOnLoad}"
FitWidthOnLoad="{_FitWidthOnLoad}"
PrintEnabled="{_PrintEnabled}"
FullScreenAsMaxWindow="{_FullScreenAsMaxWindow}"
ProgressiveLoading="{_ProgressiveLoading}" />
</mx:Application>
但是按照上述方法试了下,就无法调用官方提供的API接口了。原因是上述的程序并没有提供接口(接口在FlexPaperViewer_Base.mxml)这个文件中
只需要加入如下的语句,就可以调用gotoPage接口了
public
function
gotoPage(p:Number
):void{
paperViewer.gotoPage(p);
}
别忘了增加一句监听,给js调用
ExternalInterface.addCallback("gotoPage", gotoPage);
到此OK。编译出来的可以加载API了。
转载:http://www.cnblogs.com/yimiao/archive/2012/01/05/2312852.html
分享到:
相关推荐
在描述中,“去掉flexPaper-logo-打印,绝对好用,下载试一下就知道了”这部分暗示了这个压缩包可能是去除了某些限制或定制过的版本,使得FlexPaper的Logo打印功能更加高效或者方便。通常,这种优化可能涉及到去除...
去掉了logo fp 及打印 右键菜单支持复制
1.项目是用flash builder打开。 2.配置及研究参考博客:http://www.cnblogs.com/yimiao/archive/2012/01/05/2312852.html 3.使用FlexPaperViewer.swf文件可直接将bin-debug下面的flexpaper.swf文件复制改名。
总的来说,"FlexPaper_2.1.0去logo,打印,完美版"是一个为用户提供无品牌、优化打印和修复右键功能的定制化文档查看工具。它适合那些寻求更高自定义度和更佳用户体验的网站开发者或企业。在实际应用中,这种定制...
FlexPaper 是一款流行的数字出版解决方案,它允许用户在网页上展示文档,如PDF、SVG、图像等,并提供了丰富的交互功能,如搜索、打印和自定义界面。在这个特定的场景中,我们关注的是如何配置FlexPaper以实现无Logo...
在本"FlexPaper去logo版本"中,主要亮点在于它已经移除了默认的FlexPaper品牌标识,包括logo和打印按钮,同时也去掉了右键菜单中的自定义选项,为用户提供更为纯净的阅读体验。 1. **FlexPaper核心功能**:...
项目简单明了,方便理解,能够直接拿来用。 有鉴于前几天做一个类似文库的功能,采用开源的flexpaper显示,需要去除一些标志做的...如果有兴趣研究源码更改,可以搜搜我的“源代码去除flexpaper logo和打印按钮”项目。
这个压缩包文件提供了一个FlexPaper的Demo,用于展示如何进行二次开发,特别是如何去除打印、关于界面、Logo以及将PDF转换为SWF格式的功能。 首先,让我们深入了解一下FlexPaper的基本功能。FlexPaper 提供了...
这个"FlexPaper2.1.0去除logo版"是该软件的一个定制版本,已经去除了原始版本中的公司logo以及打印按钮,为用户提供了一个更纯净、更自定义的界面。 1. **FlexPaper核心功能**: - **文档预览**:FlexPaper允许...
这个2.2.1版本的二次开发版本提供了一种方法来定制和扩展其功能,比如去除Logo、允许文本复制以及支持打印操作。在本文中,我们将深入探讨FlexPaper的这些关键特性以及如何进行二次开发。 1. **去除Logo**:在默认...
本教程将详细介绍如何去除FlexPaper中的Logo和"FP"标识,以实现更纯净的阅读界面,并且仿照百度文库的样式进行定制。首先,你需要获取FlexPaper的源码,这通常在官方下载页面可以找到。解压下载的压缩包,里面包含了...
这个修改版就去除了打印选项,使得用户无法通过FlexPaper直接打印文档,增加了对内容安全性的控制。 2. **移除Logo**: 原版FlexPaper在界面底部通常会显示其标识或开发者信息。在修改版中,这个Logo被移除,使得...
FlexPaper.swf破解 1.4 无logo、水印、禁止打印、可旋转;可单页、双页、多页预览、旋转、缩放、全屏、搜索,同时去除了水印和打印功能;已测试,有完整示例,注释。
然而,在实际应用中,有时我们需要对其进行定制,以满足特定需求,比如去除打印按钮、FP字样、FlexPaper的logo,以及处理中文路径不能读取的问题。以下是一些关于FlexPaper二次开发的详细步骤和解决方案: 1. 获取...
1.去除右上角fp字样 2.去除右下角logo 3.去除工具栏打印按钮 4.去除工具栏文字选择按钮(等价于文档内容不可复制) 5.去除右键菜单的打印、全选、复制等选项 6.增加鼠标悬浮按钮显示中文提示
去除logo,打印,增加js调用函数。修改加载中文名swf问题。
- **无Logo定制**:特别提到的版本去除了默认的Logo,提高了品牌一致性,并减少了视觉干扰。 - **打印控制**:该插件允许开发者禁用打印功能,从而保护内容版权,防止未经授权的复制或分发。 - **JavaScript插件*...
本项目是FlexPaper源码的编译版本,特别针对百度文库的界面和功能进行了仿制,去除了原版的Logo以及打印选项,以提供更加定制化的服务。 首先,让我们详细了解FlexPaper的工作原理。FlexPaper的核心是其强大的文档...
其次,"去掉打印"和"去掉右键打印"是针对文档的安全性和版权保护措施。源码中可能涉及到禁用打印功能的方法,这可能是通过禁用浏览器的打印菜单项,或者在JavaScript中阻止打印事件的触发。同时,防止右键打印可能...