上传pdf,word,ppt文档转化为在线阅读的flash文档【二】

这步比较简单,主要是应用 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

这个时候,遇到报错

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.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’

解决方法 :

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…

所以先安装上述的库,再重新编译 : 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.