centos安装SWFtools服务(pdf2swf)

第一步:下载swftools-0.9.2.tar.gz

第二步:swftools

tar -xzvf swftools-0.9.2.tar.gz
cd swftools-0.9.2
./configure
make
make install
make clean
make distclean
whereis pdf2swf

常见错误:
①找不到jpeg命令
jpeg.c:462: error: conflicting types for ‘jpeg_load_from_mem’
jpeg.h:15: note: previous declaration of ‘jpeg_load_from_mem’ was here

解决方案,
下载sjpegsrc.v9a.tar.gz
安装jpeg
tar -xzvf jpegsrc.v9a.tar.gz
cd jpeg-9a
./configure
make
make install
make clean
make distclean


②出现未定义而去使用的错误:
:info:build jpeg.c:109:35: error: use of undeclared identifier 'TRUE'
:info:build jpeg_set_quality(&cinfo,quality,TRUE);
:info:build

解决方案,swftools-0.9.2 中一个文件做修改:

vi lib/jpeg.c

#ifdef HAVE_JPEGLIB
#define HAVE_BOOLEAN
#include

改为:
#ifdef HAVE_JPEGLIB
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#define HAVE_BOOLEAN
#include

③找不到freetype命令错误
yum install freetype

④./lib/libgfx.a(gfxfont.o): In function `gfxfont_free':
gfxfont.c:(.text+0x56): undefined reference to `glyph_clear'
collect2: ld returned 1 exit status
make[1]: *** [swfrender] Error 1
make[1]: Leaving directory `/home/fz/swftools-0.9.1/src'
make: *** [all] Error 2

解决方案:
yum install freetype-devel


⑤可能遇到的问题
modules/.././types.h:39:2: 错误:#error "no way to define 64 bit integer"
modules/.././types.h:42:2: 错误:#error "don't know how to define 32 bit integer"
modules/.././types.h:45:2: 错误:#error "don't know how to define 16 bit integer"
modules/.././types.h:48:2: 错误:#error "don't know how to define 8 bit integer"
解决方法:
[root~]# ldconfig /usr/local/lib
然后再执行
[root~]# ./configure
make
make install

⑥ 还可能遇到的问题
make[1]: *** [install] 错误 1
make[1]: Leaving directory `/root/swftools-0.9.2/swfs'
make: *** [install] 错误 2
解决方法:
将swfs目录下的Makefile和Makefile.in两个文件中的 -o -L 去掉
make install
成功


安装完成后执行一下,pdf2swf -h 有帮助内容显示,则证明安装成功。
如果所转换的PDF不包含中文,则到此为止就可以正常使用了。
如果包含中文,就需要使用到xpdf的字体库

第三步:测试命令是否成功
pdf2swf -T 9 -s poly2bitmap -s zoom=150 -s flashversion=9 "/usr/local/app/xxxie/1.pdf" -o "/usr/local/app/xxxie/1.swf"

如果pdf2swf命令找不到,需要添加pdf2swf到环境变量中
vim /etc/profile
export PATH=$PATH:/usr/local/swftools/bin/

如果中文乱码,进行第四步

第四步:安装xpdf语言包。
到http://www.foolabs.com/xpdf/download.html下载xpdf-chinese-simplified.tar.gz
tar -xzvf xpdf-chinese-simplified.tar.gz
解压到任意路径,例如/usr/local/xpdf/xpdf-chinese-simplified
下载
http://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/gkai00mp.ttf.gz
http://ftp.gnu.org/gnu/non-gnu/chinese-fonts-truetype/gbsn00lp.ttf.gz
解压出ttf文件gkai00mp.ttf和gbsn00lp.ttf,放到/usr/local/xpdf/xpdf-chinese-simplified/CMap/路径下
5. 配置/usr/local/xpdf/xpdf-chinese-simplified/add-to-xpdfrc文件
#----- begin Chinese Simplified support package (2011-sep-02)
cidToUnicode Adobe-GB1 /usr/local/xpdf/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap ISO-2022-CN /usr/local/xpdf/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap EUC-CN /usr/local/xpdf/xpdf-chinese-simplified/EUC-CN.unicodeMap
unicodeMap GBK /usr/local/xpdf/xpdf-chinese-simplified/GBK.unicodeMap
cMapDir Adobe-GB1 /usr/local/xpdf/xpdf-chinese-simplified/CMap
toUnicodeDir /usr/local/xpdf/xpdf-chinese-simplified/CMap
displayCIDFontTT Adobe-GB1 /usr/local/xpdf/xpdf-chinese-simplified/CMap/gkai00mp.ttf
displayCIDFontTT Adobe-GB1 /usr/local/xpdf/xpdf-chinese-simplified/CMap/gbsn00lp.ttf
#----- end Chinese Simplified support package


测试命令是否成功

pdf2swf -s languagedir=/usr/local/xpdf-chinese-simplified -T 9 -s poly2bitmap -s zoom=150 -s flashversion=9 "/usr/local/app/xxxie/1.pdf" -o "/usr/local/app/xxxie/1.swf"

原文地址:https://www.cnblogs.com/itspy007/p/4478743.html