回到顶部
您的当前位置: 编程语言> FLEX> FLEX项目> FlexPaper
FlexPaper(四)SWFTools使用PDF转SWF
2014-08-27 15:23:00
标签: 网络整理 FlexPaper SWFTools使用 PDF转SWF
PDF转换SWF前的准备工作

1、下载SWFTools,这个是转换PDF的基础,下载地址:http://www.swftools.org/download.html

2、由于PDF中含有中文字体,需要下载Xpdf,下载地址:www.foolabs.com/xpdf/download.html

    ①于“Precompiled binaries”项目下,下载符合自己系统的二进制文件。

    ②于“Language Support Packages”项目下,下载所需字体包,中文简体为xpdf-chinese-simplified.tar.gz

3、再转换带有中文字体的PDF,除了需要上述字体包外,还需要下载gbsn00lp.ttf及gkai00mp.ttf,下载地址可以在SWFTools安装目录的README中查找到:

    gkai00mp.ttf : http://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/gkai00mp.ttf.gz

    gbsn00lp.ttf : http://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/gbsn00lp.ttf.gz

安装已下载文件

1、SWFTools默认安装即可。

2、xpdf默认安装,安装目录不可出现空格,我是安装到c盘根目录下。

3、解压xpdf-chinese-simplified.tar.gz到xpdf目录下。

4、解压gbsn00lp.ttf及gkai00mp.ttf至c:\xpdf\xpdf-chinese-simplified\CMap目录下。

配置xpdf及字符集

主要是修改xpdf-chinese-simplified目录下的add-to-xpdfrc文件

#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode  Adobe-GB1    C:\xpdf\xpdf-chinese-simplified\Adobe-GB1.cidToUnicode
unicodeMap    ISO-2022-CN  C:\xpdf\xpdf-chinese-simplified\ISO-2022-CN.unicodeMap
unicodeMap    GBK          C:\xpdf\xpdf-chinese-simplified\GBK.unicodeMap
cMapDir       Adobe-GB1    C:\xpdf\xpdf-chinese-simplified\CMap
toUnicodeDir               C:\xpdf\xpdf-chinese-simplified\CMap
fontDir                    C:\WINDOWS\Fonts
displayCIDFontTT Adobe-GB1 C:\xpdf\xpdf-chinese-simplified\CMap\gbsn00lp.ttf
displayCIDFontTT Adobe-GB1 C:\xpdf\xpdf-chinese-simplified\CMap\gkai00mp.ttf
#----- end Chinese Simplified support package
命令行执行转换命令
pdf2swf.exe -o c:\pdf\pdf\1.swf -t c:\pdf\pdf\1.pdf -s languagedir=c:\xpdf\xpdf-chinese-simplified -T 9 -z -f

pdf2swf.exe执行命令参数说明如下:

-h-help打印帮助日志
-V-version打印版本号
-o-output file.swf指定输出的swf文件名
-p-pages range指定转换的页面范围1-20 或者1,4,6,9-11,使用的页码描述方法与打印机打印文件时候的选页一样
-P-password password指定打开pdf的密码
-v-verbose转换时输出详细内容
-z-zlib使用flash6的zlib压缩机制
-i
-ignore允许修改pdf的绘制顺序,可能会导致结果和原来有差异
-j–jpegquality quality设置转换其中的jpeg图片的质量,从0到100,默认值是85。
-s
-set param=value设置SWF转码时候的参数,具体参数可以用pdf2swf -s -help获取
-w
-samewindow
设置转换后的swf打开原pdf中的连接时使用相同的窗口
-t
-stop在每一页结尾添加一个stop()命令
-T
-flashversion num
设置SWF所使用的flash版本号
-F
-fontdir directory
指定字体文件所在路径
-b
-defaultviewer
指定默认的swf导航文件,用来翻页、放大缩小等等 
-l–defaultloader指定默认的swf加载文件,用来显示加载进程效果
-B–viewer filename指定swf导航文件,作用同-b
-L–preloader filename指定swf加载文件,作用同-l
-q–quiet不打印普通信息,用-qq就不打印警告信息
-S–shapes不使用字体,所有都转为形状
-f–fonts在swf中保存全部字体
-G–flatten在文件中尽量去除影片层,合并它们
-I–info不做实际转换,仅显示PDF的信息
-Q–maxtime n如果运行时间超时则退出

我们可以看到-s参数的用途,设置SWF转码时候的参数,可以通过pdf2swf -s help命令获得更多的参数:

对应的PDF参数

fontdir=指定字体目录, 与1级参数的-F相若
font=增加额外的字体文件
pages=指定页面范围,与1级参数的-p相若
zoom=指定分辨率,默认为72dpi
languagedir=增加一个xpdf的语言目录,对非西欧字符有用
multiply=在几倍分辨率下渲染
poly2bitmap=把其中的图形转成点阵
bitmap=把所有内容转成点阵(包括字体)

对应的SWF参数

jpegsubpixels=<pixels>jpeg图片的分辨率
ppmsubpixels=<pixels>无损图片的分辨率
subpixels=<pixels>快速设置上两个参数
drawonlyshapes所有都转成图形
ignoredraworderswf允许执行一些小优化
linksopennewwindow链接打开新窗口
linktarget新链接窗口名称
linkcolor=<color>链接的颜色
linknameurl链接名称与链接URL一致
storeallcharacters保存所有的字符字体
enablezlib使用zlib压缩
bboxvars在as中保存swf的区域大小
dots保存单点显示
reordertags=0/1执行某些tag优化
internallinkfunction=<name>内部链接函数,如果点击一个内部链接,将调用该actionscript函数
externallinkfunction=<name>外部链接函数,如果点击一个外部链接,将调用该actionscript函数
disable_polygon_conversion不要将笔画转成多边形
caplinewidth=<width>线条最低转换宽度,比这个细的线条将不转换
insertstop在swf的每个桢中添加stop()函数
protect增加protect标签,禁止在flash中加载该swf
flashversion=<version>设置最低swf版本
framerate=<fps>设置桢率
minlinewidth=<width>将宽度少于某值的矩形转成线条
simpleviewer使用简单的导航
animateinsert a showframe tag after each placeobject (animate draw order of PDF files)
jpegquality=<quality>设置jpeg的压缩质量
splinequality=<value>设置样条曲线的转换质量
disablelinks禁止链接