这步比较简单,主要是应用 swftools 里的 pdf2swf工具,
下载swftools 可以从这里: http://www.swftools.org/download.html
下载编译之:
wget http://www.swftools.org/swftools-0.9.1.tar.gz
tar xvzf swftools-0.9.1.tar.gz
cd swftools-0.9.1
./configure
make
tar xvzf swftools-0.9.1.tar.gz
cd swftools-0.9.1
./configure
make
这个时候,遇到报错
jpeg.c:463: error: conflicting types for ‘jpeg_load_from_mem’
jpeg.h:15: error: previous declaration of ‘jpeg_load_from_mem’ was here
make[1]: *** [jpeg.o] Error 1
jpeg.h:15: error: previous declaration of ‘jpeg_load_from_mem’ was here
make[1]: *** [jpeg.o] Error 1
原来是函数的定义和头文件的声明有点冲突,解决方式比较简单,修改 jpeg.c 的 463行:
改为:
int jpeg_load_from_mem(unsigned char*_data, int _size, unsigned char**dest, int*width, int*height)
继续即可,
然后又遇到问题:
gcc -DHAVE_CONFIG_H swfrender.o -o swfrender ../lib/libgfxswf.a ../lib/librfxswf.a ../lib/libgfx.a ../lib/libbase.a -L/usr/local/lib -lz -lm
../lib/libgfx.a(gfxfont.o): In function gfxfont_free‘:
gfxfont.c:(.text+0x7c0): undefined reference to glyph_clear’
../lib/libgfx.a(gfxfont.o): In function gfxfont_free‘:
gfxfont.c:(.text+0x7c0): undefined reference to glyph_clear’
解决方法 :
sudo yum install freetype-devel
再继续(需要重新./configure )
在 sudo make install 就可以了
我了个擦,发现没编译pdf2swf,仔细看下./configure提示信息:
* The following headers/libraries are missing: jpeglib ungif jpeglib.h gif_lib.h
* Disabling pdf2swf tool…
* Disabling pdf2swf tool…
所以先安装上述的库,再重新编译 : sudo yum install libjpeg-devel
试一下 :
pdf2swf who.pdf -o who.swf
关于乱码问题,可以参考这个链接: http://www.javaeye.com/topic/538361
这样的swf文件有一个问题, 是自动播放的,我们无法对其进行控制,这显然不是我们期望的,所以我们可以通过 -b 来附加一个默认的阅读器, 加上-T9 强制版本为v9(据说可以避免一些单页的pdf显示问题)
pdf2swf -T9 -b who.pdf -o who.swf
到这里,生成过程就差不多了,不过显然这个viewer还需要美化,这个我们后面再继续研究
Comments are closed.