最近一段时间需要开发一个类似白度的共享文档的东西。其核心功能就是需要将用户上传的各类文件转换为swf格式的flash文件,然后通过一个flash阅读器展现出来。
该功能模块需要使用linux作为承载系统。因此需要安装linux下的文件类型转换工具,在网上搜索了一下。大部分的文章都提到了openoffice和unoconv。最开始试着在Fedora core 6上进行安装,缺少很多包的依赖,安装起来比较麻烦。后来下载了最新的FC15系统,直接使用yum命令就可以进行安装,有现成的更新源,很方便。
#yum install unoconv
之后它会自动进行安装更新各种依赖包。
安装好后,使用命令进行测试
#unoconv --help
显示出命令的帮助信息,表示安装成功了。
进行命令应用测试
#unoconv -f pdf test.txt
这个命令运行后直接会弹出错误信息
/usr/lib/libreoffice/program/soffice.bin X11 error: Can't open display:
Set DISPLAY environment variable, use -display option
or check permissions of your X-Server
(See "man X" resp. "man xhost" for details)
Error: Unable to connect or start own listener. Aborting.
这个问题提示的是x-server没有启动原因。及时你安装的系统有桌面也还是会报这个错误。解决的办法是虚拟一个x桌面在后台运行。命令如下:
#Xvfb :1 -screen 0 800x600x24&
不过这个命令有可能不能执行,这是为什么呢?因为你没有安装这个虚拟后台的小工具。xorg-x11-server-Xvfb
# yum install xorg-x11-server-Xvfb
安装好这个东西后,这样就可以执行上面的后台命令了
其中在这还有可能报错 could not open default font 'fixed' 主要是缺少相关字体,通过yum安装即可
虽然有了虚拟窗口,但是在转换时仍然会提示错误,说是环境变量有问题,这时是需要导入环境变量
#exportDISPLAY=localhost:1
执行上述命令后,接着需要执行一个监听的命令,来保证转换命令的持续进行,命令如下:
#soffice -accept="socket,host=127.0.0.1,port=8100;urp;"-display :1&
可能有的系统不能完全执行上面的命令,或者根本不起作用,这时你可以尝试使用下面的命令来完成监听
#unoconv –listener &
这个命令将会很好运行,你可忽略上面的监听命令,直接使用这个命令了。
做完这些工作后,你就可以使用unoconv命令进行pdf的转换了,你还可以将txt直接转换成swf格式的文件,但是你会发现,有些pdf转换成swf后样式很难看,有写页面大小都不一样。这怎么办啊。下面,你可以尝试是用swftool进行pdf到swf的转换,这样的转换出的结果会令你很满意的。下面说说swf的安装:
你也可以通过wget命令来下载。
#wget http://www.swftools.org/swftools-0.9.1.tar.gz
系统会自动下载该文件,下载完成后使用tar命令来解压所该文件
#tar -xzvf swftools-0.9.1.tar.gz
解压完成后进入解压后的目录
#cd swftools-0.9.1
使用configure进行配置
#./configure
这时你如果没有安装gcc的话,你是没有办法通过编译的。这时你需要安装gcc
#yum install gcc
安装完成后,再进行configure,这是他有可能提示你
ERROR:
You need zlib to compile swftools
这是为什么呢?通过rpm -qa zlib查找安装的zlib,发现已经安装了。其实它所说的这个zlib是指的 zlib-devel,另外除了这个还有其他相关的库
zlib-devel
libjpeg-devel
giflib-devel
freetype-devel
gcc
gcc-c++
保证以上的库都已经安装好了才行.使用 yum install 逐个进行安装.
都安装好了之后,就可以顺利的configure了
之后就可以执行make 和 make install 完成安装了。
好了最后使用 pdf2swf -o test.swf test.pdf 查看下转换结果吧。
可能你需要转换缩略图,但是你的转换命令需要GD库的支持,所以你需要安装GD库
#yum install php-gd
参考文档
http://computerhelperzz.blogspot.com/2011/05/installing-swftool-decompile-swf-on.html