SWFTools 是一组用来处理 Flash 的 swf 文件的工具包,包括:
1. 合并工具 swfcombine
2. 抽取工具 swfextract
3. PDF/JPEG/PNG/AVI/TTF/WAV 到 SWF 的转换工具 :pdf2swf, jpeg2swf, png2swf, avi2swf, font2swf, and wav2swf|
4. 文本解析工具 swfstrings
5. SWF 解析器 swfdump
6. SWF 读写库 rfxswflib
SWFTools 提供了一系列 将各种文件转成swf的工具:
- font2swf.exe
- gif2swf.exe
- jpeg2swf.exe
- pdf2swf.exe
- png2swf.exe
- wav2swf.exe
具体的功能就顾名思义了。
其中把pdf转成swf的工具就是pdf2swf了。在命令行中运行pdf2swf src.pdf des.swf一般能满足需求。而命令行参数可以通过pdf2swf -f得到:
- -h , –help Print short help message and exit 打印帮助信息
- -V , –version Print version info and exit 打印版本号
- -o , –output file.swf Direct output to file.swf. If file.swf contains ‘13568621′ (file13568630.swf), then each page指定输出的swf文件名
-
-p , –pages range Convert only pages in range with range e.g. 1-20
or 1,4,6,9-11 or指定转换的页面范围,使用的页码描述方法与打印机打印文件时候的选页一样
- -P , –password password Use password for deciphering the pdf.指定打开pdf的密码
- -v , –verbose Be verbose. Use more than one -v for greater effect.转换时输出详细的内容
- -z , –zlib Use Flash 6 (MX) zlib compression.使用Flash 6的zlib压缩机制
- -i , –ignore Allows pdf2swf to change the draw order of the pdf. This may make the generated允许程序修改pdf的绘制顺序,可能会导致结果与原来有差异
- -j , –jpegquality quality Set quality of embedded jpeg pictures to quality. 0 is worst (small), 100 is best (big). (default:85)设置转换其中的jpeg图片的质量,从0到100,默认值是85。
- -s , –set param=value Set a SWF encoder specific parameter. See pdf2swf -s help for more information. 设置SWF转码时候的参数,具体参数可以用pdf2swf -s help获取
- -w , –samewindow When converting pdf hyperlinks, don’t make the links open a new window. 设置转换后的swf打开原pdf中的连接时使用相同的窗口
- -t , –stop Insert a stop() command in each page. 在每页结尾添加一个stop()命令
- -T , –flashversion num Set Flash Version in the SWF header to num. 设置SWF所使用的flash版本号
- -F , –fontdir directory Add directory to the font search path. 指定字体文件所在路径
- -b , –defaultviewer Link a standard viewer to the swf file. 指定默认的swf导航文件,用来翻页、放大缩小等等
- -l , –defaultloader Link a standard preloader to the swf file which will be displayed while the main swf is loading. 指定默认的swf加载文件,用来显示加载进程效果
- -B , –viewer filename Link viewer filename to the swf file. 指定swf导航文件,作用同-b
- -L , –preloader filename Link preloader filename to the swf file. 指定swf加载文件,作用同-l
- -q , –quiet Suppress normal messages. Use -qq to suppress warnings, also. 不打印普通信息,用-qq就不打印警告信息。
- -S , –shapes Don’t use SWF Fonts, but store everything as shape. 不使用字体,所有都转为形状。
- -f , –fonts Store full fonts in SWF. (Don’t reduce to used characters). 在swf中保存全部字体。
- -G , –flatten Remove as many clip layers from file as possible. 在文件中尽量去除影片层,合并它们
- -I , –info Don’t do actual conversion, just display a list of all pages in the PDF. 不做实际转换,仅显示PDF的信息。
- -Q , –maxtime n Abort conversion after n seconds. Only available on Unix. 如果运行时间超时则退出。
详细的操作方法: http://www.srcsky.com/kaiyuan/project/flexpaper :
FlexPaper 是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用, 使在Flex中显示PDF成为可能。它可以被当做Flex的library来使用。
一. 使用PDF2SWF准备好你的文档
首先要将PDF转成SWF,这步可以使用开源的SwfTools( http://www.swftools.org/ )自动完成
1.下载安装 SwfTools,当前最新版本是0.9
2. 转换PDF到SWF,可以通过命令行的方式,例如将Paper3.pdf转换成Paper3.swf
C:\SWFTools\pdf2swf Paper3.pdf -o Paper3.swf
二. 使用已经编译好的 FlexPaper 的flash版本浏览你的文档
- 下载并解压出已经编译好的 FlexPaper( http://code.google.com/p/flexpaper/downloads/list )
-
zip文件包含一个例子文件叫做FlexPaperViewer.html,它向你展示了需要传给
FlexPaper
的 基本参数
var params = {
SwfFile : "Paper.swf",
Scale : 0.6
}
swfobject.embedSWF("FlexPaperViewer.swf","cb","500","500","9.0.0","js/swfobject/expressInstall.swf", params);
//SwfFile参数是你想显示的文件,Scale是0-1之间的数,表示显示的放大参数 - 复制你创建出来的swf和PDF2SWF到解压缩出的相同目录
- 确定你添加了FlexPaperViewer.swf
三. 在Flex中使用 FlexPaper
1. 下载
FlexPaper
SWC,添加到你的Flex项目libs中
2. 复制你用PDF2SWF创建的SWF到你的bin-debug目录,如Paper3.swf,添加
FlexPaper
组 件到你的flex代码中Xml代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
??? layout="absolute"
??? width="800" height="500"
??? xmlns:flexpaper="com.devaldi.controls.flexpaper.*">
???
??? <flexpaper:FlexPaperViewer width="800" height="500"
??? ??? Scale="1" SwfFile="Paper3.swf" />
???
</mx:Application>