Flexpaper二次开发入门教程.docx
《Flexpaper二次开发入门教程.docx》由会员分享,可在线阅读,更多相关《Flexpaper二次开发入门教程.docx(43页珍藏版)》请在冰点文库上搜索。
Flexpaper二次开发入门教程
Flexpaper二次开发入门教程
1.Flexpaper介绍
1.1Flexpaper是什么?
Flexpaper是由一家新西兰的Devaldi公司开发的在线浏览各种文件的组件,它采用的是GPL开源的协议,即源代码开放并可以最其进展修改使用,这一切都是免费得,但不能对Flexpaper源码修改后封装成商业软件进展发布和销售。
Flexpaper官方主页:
flexpaper.devaldi.
1.2Flexpaper可以做什么?
如果你有一些DOC、PPT、PDF等格式的文档,想在里提供应大家在线阅读,那怎样做好呢?
现在Flexpaper可以为你做到,当然Flexpaper还有一个伙伴,那就是SWFTools,通过SWFTools生产SWF,再通过Flexpaper组件显示,这对黄金伙伴可以为你实现的在线文档功能。
使用Flexpaper浏览PDF,那需要PDF软件环境的支持吗?
答案是不需要的,Flexpaper还可以被当做Flex的库来使用,这些都使开发、使用变得更简单。
1.3Flexpaper版本
Flexpaper的初始版本1.0发布于2009年,到现在已经有42个版本。
swc版本为组件包,使用swc组件包需要导入到工程中再调用,flash版本为可以单独执行的,里面有例子、JS文件、SWF文件,我们采用flash版本很容易就可以使用Flexpaper显示在线文档。
SWFTools介绍
1.5SWFTools介绍
SWFTools是一个SWF处理、转换的开源工具,它的功能主要表现在:
1. SWF的抽取、合并、解析、读写;
2. PDF/JPEG/PNG/AVI/TTF/WAV等格式转换成SWF。
SWFTools是采用GPL开源协议,永久免费,现在SWFTools已经支持Solaris,Linux(32bit和64bit),FreeBSD,OpenBSD,HP-UX,Solaris,MacOSXandWindows98/ME/2000/XP/Vista等多个系统。
,下载后安装后可以看到它的工具
官方对各个工具的描述:
∙PDF2SWFAPDFtoSWFConverter.Generatesoneframeperpage.Enablesyoutohavefullyformattedtext,includingtables,formulas,graphicsetc.insideyourFlashMovie.It'sbasedonthexpdfPDFparserfromDerekB.Noonburg.
∙SWFbineAmulti-functiontoolforinsertingSWFsintoWrapperSWFs,contatenatingSWFs,stackingSWFsorforbasicparametermanipulation(e.g.changingsize).
∙SWFStringsScansSWFsfortextdata.
∙SWFDumpPrintsoutvariousinformationsaboutSWFs,likecontainedimages/fonts/sounds,disassemblyofcontainedcodeaswellascross-referenceandboundingboxdata.
∙JPEG2SWFTakesoneormoreJPEGpicturesandgeneratesaSWFslideshowfromthem.Supportsmotionestimationpression(h.263)forbetterpressionofvideosequences.
∙PNG2SWFLikeJPEG2SWF,onlyforPNGs.
∙GIF2SWFConvertsGIFstoSWF.Alsoabletohandleanimatedgifs.
∙WAV2SWFConvertsWAVaudiofilestoSWFs,usingtheL.A.M.E.MP3encoderlibrary.
∙AVI2SWFConvertsAVIanimationfilestoSWF.ItsupportsFlashMXH.263pression.Someexamplescanbefoundat.(Notice:
thistoolisnotincludedanymoreinthelatestversion,asffmpegormencoderdoabetterjobnowadays)
∙Font2SWFConvertsfontfiles(TTF,Type1)toSWF.
∙SWFBBoxAllowstoreadout,optimizeandreadjustSWFboundingboxes.
∙SWFCAtoolforcreatingSWFfilesfromsimplescriptfiles.IncludessupportforbothActionScript2.0aswellasActionScript3.0.
∙SWFExtractAllowstoextractMovieclips,Sounds,Imagesetc.fromSWFfiles.
∙AS3pileAstandaloneActionScript3.0piler.MostlypatiblewithFlex.
gpdf2swf的工作界面:
SWFTools官方:
2.Flexpaper二次开发准备工作
Flexpaper虽然已经提供了不错的功能,但我们还是有可能需要根据自己的需要对Flexpaper进展二次开发,做什么事情都要做足准备,这样才可提高成功率,因此进展Flexpaper二次开发,这一步也是必不可少的,需要什么、怎么去做,我们会在下面慢慢介绍。
2.1获得Flexpaper源码
我们可以通过flexpaper.googlecode./svn/trunk/这个地址,获取Flexpaper的源码〔我下载的是2012-1-24日的版本〕。
在获取前,我们需要安装SVN,这里我们使用TortoiseSVN,安装后打开,选择file->TortoiseSVN->Repo-browser,输入上面的地址:
上后,可以看到目录结果如如下图:
我们选择trunk/FlexPaper目录,右键选择Checkout,在提示框中选择Checkout目录,确认后会开始下载,如如下图:
Checkout完毕后,可以看到相应目录下
2.3把Flexpaper源码导入AdobeFlashBuilder
2.3.1创建Flex项目
选择工具栏上的“文件〞->新建->Flex项目
在创建项目窗口,我们主要填写、选择下面容:
a)输入项目名称,这里我使用了ajavaflexpaper;
b)项目位置为你的存放项目文件的目录,这里我使用了F:
\ajavaflexpaper;
c)应用类型我们选择〞web(在AdobeFlashPlayer中运行)〞,因为我们要在web页面浏览,所以选择了此项;
d)选择FlexSDK版本,这里采用FlexSDK4.0;
e)应用的是那种服务器技术,可选择:
无/其他、ASP.NET、ColdeFusion、J2EE、PHP等,这里我选择了无/其他。
填写、选择完毕后,点击下一步,进入“配置输出〞提示框,选择已编译的FLEX应用程序的位置,这里我采用了默认的bin-debug目录,源码重新编译后,文件会放在bin-debug目录。
点击下一步,来到最后一步,设置源路径和库路径。
我们选择的容有组件集选择“仅MX〞,框架选择“合并到代码中〞,其他默认就可以,当然你也可以重新设置你的“主源文件夹〞和“主应用程序文件〞。
点击完成,Flex项目创建完毕,到F:
\ajavaflexpaper目录,可看到如如下图的目录结构:
2.3.2把flexpaper源码复制到Flex项目目录
我们要复制的目录有:
locale、src复制到Flex项目根目录(F:
\ajavaflexpaper)中,lib里的FlexPaper_Resources.swc复制到F:
\ajavaflexpaper\libs中。
复制完毕后,在FlashBuilder4中右击项目名选择刷新,刷新后可见项目中增加了一些文件,见如下图红色框局部:
到目前为止,准备工作已完成,为FlexPaper二次开发做好准备。
下节我们先介绍FlexPaper和SWFTools的简单使用,对使用有了了解后,再进入二次开发容。
3.SWFTools的简单使用
有了第一章的介绍,大家对SWFTools应该有了根本的认识,下面我们开始演示怎样使用SWFTools的gpdf2swf.exe、pdf2swf.exe的使用,由于本教程的容围较小,所以其他工具使用不在这里介绍。
3.1使用swftools生成第一个SWF
方式一、使用gpdf2swf可视化窗口
我们打开gpdf2swf可视化窗口后,选择OpenPDF,选择要生成SWF的PDF文件,之后保存为SWF,你可以选择把所有页面或者局部页面参加到SWF文件,操作如如下图:
〔打开PDF文件〕
〔选择PDF文件〕
〔设置参数〕
〔保存为SWF文件〕
在这里大家要注意,使用目前最新版本的SWFTools中gpdf2swf.exe生成PDF,在设置参数中,只能选择Flash7或者8版本,但目前Flash9或者10版本都大行其道,因此mark建议生成SWF时采用第二种方式,我们下面继续介绍。
我们打开CMD,进入SWFTools的安装目录,这里我的安装目录是D:
\ProgramFiles\SWFTools,pdf2swf.exe的命令形式为:
我们执行下面的命令:
由上图我们可以看到每页转换的提示,最后写入到SWF文件中,打开F:
\ajava目录,可以看到FusionCharts.swf已经生成,这个swf的版本是flash9。
这里用到了pdf2swf.exe的-t、-s、-o参数,下一节我们对pdf2swf.exe的参数作详细介绍。
注意:
pdf2swf.exe命令中的文件名、目录名,不能带空格,否如此不能生成SWF。
3.2SWFTools参数介绍
我们输入:
D:
\ProgramFiles\SWFTools>pdf2swf.exe–h,就可以获得帮助信息,本小节的参数描述转自某朋友的文章,mark作了简单的修改,因不知道谁是原创者,特说明,表示感,假设作者见本教程,可到ajava.org联系mark,将在本节中添加原作者大名。
-h,–help打印帮助信息
-V,–version打印版本号
-o,–outputfile.swf指定输出的swf文件名
-p,–pagesrange指定转换的页面围1-20或者1,4,6,9-11,使用的页码描述方法与打印机打印文件时候的选页一样
-P,–passwordpassword指定打开pdf的密码
-v,–verbose转换时输出详细的容
-z,–zlib使用Flash6的zlib压缩机制
-i,–ignore允许程序修改pdf的绘制顺序,可能会导致结果与原来有差异
-j,–jpegqualityquality设置转换其中的jpeg图片的质量,从0到100,默认值是85。
-s,–setparam=value设置SWF转码时候的参数,具体参数可以用pdf2swf-shelp获取
-w,–samewindow设置转换后的swf打开原pdf中的连接时使用一样的窗口
-t,–stop在每页结尾添加一个stop()命令
-T,–flashversionnum设置SWF所使用的flash版本号
-F,–fontdirdirectory指定字体文件所在路径
-b,–defaultviewer指定默认的swf导航文件,用来翻页、放大缩小等等
-l,–defaultloader指定默认的swf加载文件,用来显示加载进程效果
-B,–viewerfilename指定swf导航文件,作用同-b
-L,–preloaderfilename指定swf加载文件,作用同-l
-q,–quiet不打印普通信息,用-就不打印警告信息。
-S,–shapes不使用字体,所有都转为形状。
-f,–fonts在swf中保存全部字体。
-G,–flatten在文件中尽量去除影片层,合并它们
-I,–info不做实际转换,仅显示PDF的信息。
-Q,–maxtimen如果运行时间超时如此退出。
我们可以看到-s参数的用途,设置SWF转码时候的参数,可以通过pdf2swf-shelp命令获得更多的参数:
PDF参数:
PDFdeviceglobalparameters:
fontdir=指定字体目录,与1级参数的-F相假设
font=增加额外的字体文件
pages=指定页面围,与1级参数的-p相假设
zoom=指定分辨率,默认为72dpi
languagedir=增加一个xpdf的语言目录,对非西欧字符有用
multiply=在几倍分辨率下渲染
poly2bitmap把其中的图形转成点阵
bitmap把所有容转成点阵〔包括字体〕
SWF参数:
SWFlayeroptions:
jpegsubpixels=jpeg图片的分辨率
ppmsubpixels=无损图片的分辨率
subpixels=快速设置上两个参数
drawonlyshapes所有都转成图形
ignoredraworderSWFs允许执行一些小优化
linksopennewwindow打开新窗口
linktarget新窗口的名称
linkcolor=linknameurl名称与URL一致
storeallcharacters保存所有的字符字体
enablezlib使用zlib压缩
bboxvars在as中保存swf的区域大小
dots保存单点显示
reordertags=0/1执行某些tag优化
internallinkfunction=部函数,如果点击一个部,将调用该actionscript函数
externallinkfunction=外部函数,如果点击一个外部,将调用该actionscript函数
disable_polygon_conversion不要将笔画转成多边形
caplinewidth=线条最低转换宽度,比这个细的线条将不转换
insertstop在swf的每个桢中添加stop()函数
protect增加protect标签,禁止在flash中加载该swf
flashversion=设置最低swf版本
framerate=设置桢率
minlinewidth=将宽度少于某值的矩形转成线条
simpleviewer使用简单的导航
animateinsertashowframetagaftereachplaceobject(animatedraworderofPDFfiles)
jpegquality=设置jpeg的压缩质量
splinequality=设置样条曲线的转换质量
disablelinks禁止
4.Flexpaper简单使用
通过上面三章的容,大家对Flexpaper、SWFTools应该有大概的了解了,SWF文件也已经生成了,我们开始进入Flexpaper的使用的介绍。
本章中只演示Flexpaper在WEB页面上的使用,我们要下载一个Flash版本的FlexPaper,这里我选择了FlexPaper_1.5.0_flash。
下载地址:
code.google./p/flexpaper/downloads/list
下载、解压后,可以看到包含如下文件:
主要文件、文件夹说明:
Examples存放Flexpaper使用例子
Js存放Flexpaper调用的JS文件
Php存放PHP使用的文档、JS、库、SWF文件
Index.html例子主页
FlexpaperViewerFlexpaper的核心文件,用于浏览PDF
Paper.swf官方的默认宣传文件
playerProductInstall.swf如果客户端浏览器的flashplayer版本过低,他是不会嵌入你的swf,而是嵌入这个到页面上下载flashplayer的安装文件。
4.1第一个Flexpaper例子
那我们开始完成第一个Flexpaper例子吧,一个最简单的例子,我们主要用到FlexpaperViewer.swf、JS文件夹中的flexpaper_flash.js。
创建HTML页面test.html,代码如下:
ajava.orgFlexpaper例子
absolute;left:
10px;top:
10px;">
660px;height:
553px;display:
block">Documentloading..
varfp=newFlexPaperViewer(
'FlexPaperViewer',
'viewerPlaceHolder',{config:
{
SwfFile:
escape('FusionCharts.swf'),
Scale:
0.6,
ZoomTransition:
'easeOut',
ZoomTime:
0.5,
ZoomInterval:
0.2,
FitPageOnLoad:
true,
FitWidthOnLoad:
false,
FullScreenAsMaxWindow:
false,
ProgressiveLoading:
false,
MinZoomSize:
0.2,
MaxZoomSize:
5,
SearchMatchAll:
false,
InitViewMode:
'Portrait',
PrintPaperAsBitmap:
false,
ViewModeToolsVisible:
true,
ZoomToolsVisible:
true,
NavToolsVisible:
true,
CursorToolsVisible:
true,
SearchToolsVisible:
true,
localeChain:
'en_US'
}});
〞,或者IE一直都处于加载状态,这种情况,是由于Flexpaper还没获得AdobeFlash的信任,这时你可以请访问.macromedia./support/documentation/en/flashplayer/help/settings_manager04a.html#119065,选择始终允许,把FlexPaper1.5.0flash文件夹添加到信任列表中。
Test.html加载是引入js/flexpaper_flash.js,flexpaper_flash.js是处理SWF嵌入的脚本,大家可以在346行增加一个alert,显示html的值,看了就比拟清楚。