Flexpaper二次开发入门教程.docx
《Flexpaper二次开发入门教程.docx》由会员分享,可在线阅读,更多相关《Flexpaper二次开发入门教程.docx(40页珍藏版)》请在冰豆网上搜索。
![Flexpaper二次开发入门教程.docx](https://file1.bdocx.com/fileroot1/2022-12/30/899e1a50-789a-44c4-9a22-841fcf84e25e/899e1a50-789a-44c4-9a22-841fcf84e25e1.gif)
Flexpaper二次开发入门教程
Flexpaper二次开发入门教程
1.Flexpaper介绍
1.1Flexpaper是什么?
Flexpaper是由一家新西兰的Devaldi公司开发的在线浏览各种文件的组件,它采用的是GPL开源的协议,即源代码开放并可以最其进行修改使用,这一切都是免费得,但不能对Flexpaper源码修改后封装成商业软件进行发布和销售。
Flexpaper官方主页:
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.
∙SWFCombineAmulti-functiontoolforinsertingSWFsintoWrapperSWFs,contatenatingSWFs,stackingSWFsorforbasicparametermanipulation(e.g.changingsize).
∙SWFStringsScansSWFsfortextdata.
∙SWFDumpPrintsoutvariousinformationsaboutSWFs,likecontainedimages/fonts/sounds,disassemblyofcontainedcodeaswellascross-referenceandboundingboxdata.
∙JPEG2SWFTakesoneormoreJPEGpicturesandgeneratesaSWFslideshowfromthem.Supportsmotionestimationcompression(h.263)forbettercompressionofvideosequences.
∙PNG2SWFLikeJPEG2SWF,onlyforPNGs.
∙GIF2SWFConvertsGIFstoSWF.Alsoabletohandleanimatedgifs.
∙WAV2SWFConvertsWAVaudiofilestoSWFs,usingtheL.A.M.E.MP3encoderlibrary.
∙AVI2SWFConvertsAVIanimationfilestoSWF.ItsupportsFlashMXH.263compression.Someexamplescanbefoundatexamples.html.(Notice:
thistoolisnotincludedanymoreinthelatestversion,asffmpegormencoderdoabetterjobnowadays)
∙Font2SWFConvertsfontfiles(TTF,Type1)toSWF.
∙SWFBBoxAllowstoreadout,optimizeandreadjustSWFboundingboxes.
∙SWFCAtoolforcreatingSWFfilesfromsimplescriptfiles.IncludessupportforbothActionScript2.0aswellasActionScript3.0.
∙SWFExtractAllowstoextractMovieclips,Sounds,Imagesetc.fromSWFfiles.
∙AS3CompileAstandaloneActionScript3.0compiler.MostlycompatiblewithFlex.
gpdf2swf的工作界面:
SWFTools官方网站:
http:
//www.swftools.org/
2.Flexpaper二次开发准备工作
Flexpaper虽然已经提供了不错的功能,但我们还是有可能需要根据自己的需要对Flexpaper进行二次开发,做什么事情都要做足准备,这样才可提高成功率,因此进行Flexpaper二次开发,这一步也是必不可少的,需要什么、怎么去做,我们会在下面慢慢介绍。
2.1获得Flexpaper源码
我们可以通过
链接上后,可以看到目录结果如下图:
我们选择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时采用第二种方式,我们下面继续介绍。
方式二、使用pdf2swf.exe命令
我们打开CMD,进入SWFTools的安装目录,这里我的安装目录是D:
\ProgramFiles\SWFTools,pdf2swf.exe的命令形式为:
pdf2swf.exe[-options]file.pdf-ofile.swf
我们执行下面的命令:
pdf2swf.exe-tF:
\ajava\FusionCharts.pdf-sflashversion=9-oF:
\ajava\FusionCharts.swf
由上图我们可以看到每页转换的提示,最后写入到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不打印普通信息,用-qq就不打印警告信息。
-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。
下载地址:
下载、解压后,可以看到包含如下文件:
主要文件、文件夹说明:
Examples存放Flexpaper使用例子
Js存放Flexpaper调用的JS文件
Php存放PHP使用的文档、JS、库、SWF文件
Index.html例子主页
FlexpaperViewerFlexpaper的核心文件,用于浏览PDF
Paper.swf官方的默认宣传文件
playerProductInstall.swf如果客户端浏览器的flashplayer版本过低,他是不会嵌入你的swf,而是嵌入这个playerProductInstall.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'
}});