swftools还是蛮有用的,公司项目需要将pdf转化成swf,于是就用上它了!
原本是win2003系统上运行公司项目的,不过由于swftools在linux下能更好的发挥,于是转到centos上去了,这篇文章主要是关于swftools在centos上面安装出现的两个错误。
swftools安装也无非四步:tar -zxvf、./configure –prefix=/opt/swftools、make、make install;但是第二步./configure的时候就报错了!
jpeg.c:463: 错误:与 ‘jpeg_load_from_mem’ 类型冲突
jpeg.h:15: 错误:‘jpeg_load_from_mem’ 的上一个声明在此
make[1]: *** [jpeg.o] 错误 1
make[1]: Leaving directory `/root/Desktop/swftools-0.9.1/lib’
make: *** [all] 错误 2
google很给力,解决方法:编辑swftools下的lib/jpeg.c文件,在其462~463行,稍微修改下(主要是在三个地方加上*号),原因是——函数的定义和头文件的声明有点冲突:int jpeg_load_from_mem(unsigned char*_data, int _size, unsigned char**dest, int*width, int*height)
make的时候又给我报错了:
gcc -c -DHAVE_CONFIG_H -I/opt/include -fPIC -Wimplicit -Wreturn-type -Wno-write-strings -Wformat -O -fomit-frame-pointer -Wall -Wno-unused -fPIC -I/usr/include/python2.4 -c gfx.c -o gfx.o
make[1]: *** 没有规则可以创建“gfx.so”需要的目标“../libgfxpdf.a”。 停止。
make[1]: Leaving directory `/root/Desktop/swftools-0.9.1/lib/python’
make: *** [all] 错误 2
安装库文件呗:
yum install freetype-devel
yum install libjpeg-devel
其实以前那个安装nginx时,首先把所有相关的库文件升级命令还是很管用的,再次复制粘帖下!
sudo -s
LANG=C
yum -y install gcc gcc-c++ pcre pcre-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2- devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers
----------------------------------------------------------
安装配置Swftools
曾在centos环境下配置过swftools,并解决了安装过程中遇到的一些错误,今天再次配置的时候,还是遇到了一些问题,不过最后解决了。
这次配置的环境是CentOS6.2的32位版本,配置项包括openoffice3、xpdf-chinese-simplified、swftools、memcached,下面是swftools的安装配置步骤:
1、安装所需的库和组件。机器之前安装过了,主要安装的是下面几个组件。
yum install gcc* automake zlib-devel libjpeg-devel giflib-devel freetype-devel
2、下载编译安装swftools。
wget http://www.swftools.org/swftools-0.9.1.tar.gz
tar vxzf swftools-0.9.1.tar.gz
cd swftools-0.9.1
./configure --prefix=/usr/local/swftools
make
make install
3、设置swftools环境变量,使pdf2swf成为一个可执行命令
vim /etc/profile
export PATH=$PATH:/usr/local/swftools/bin/
4、安装xpdf语言包。下载xpdf-chinese-simplified.tar.gz文件-ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz,解压到/usr/local下,编辑add-to-xpdfrc文件,如下:
vim /usr/local/xpdf-chinese-simplified/add-to-xpdfrc
fontDir /usr/share/fonts/win
displayCIDFontTT Adobe-GB1 /usr/share/fonts/win/simhei.ttf
字体文件自己下载…
5、最后使用如下转换命令测试:
pdf2swf -s languagedir=/usr/local/xpdf-chinese-simplified -T 9 -s poly2bitmap -s zoom=150 -s flashversion=9 "/opt/123.pdf" -o "/opt/test/%.swf"
转换成功!搞定!
附:Linux环境配置文件如下:
openOfficeStartCommand = /usr/lib/openoffice.org3/program/soffice.bin/ -headless\ -accept="socket,host=127.0.0.1,port=8100;urp;"\ -nofirststartwizard
pdfToSwfCommand = /usr/local/swftools/bin/pdf2swf
bitMapc=-T 9 -s poly2bitmap -s zoom=150
zoom=150
langc=-s languagedir=/usr/local/xpdf-chinese-simplified
port = 8100