Pages

Thursday, 7 February 2013

安装swftools报错与解决



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