linux下常见文档类型(txt,doc,ppt,xls等)转换为pdf再转为swf并获得缩略图(仿百度文库)环境配置

2013.08.09

centos6.3 环境

1. 安装openoffice

http://www.openoffice.org/download/other.html#source 下载并安装 openoffice 和 sdk (注意下载版本和语言, openoffice中文64位链接, sdk也为64位链接,下载对应的版本既可)

tar zxvf Apache_OpenOffice_4.0.0_Linux_x86-64_install-rpm_zh-CN.tar.gz

cd 到 rpm 目录, 然后安装

rpm -ivh *.rpm --nodeps --force

安装后的默认目录是在:/opt/目录下面

启动服务:

/opt/openoffice4/program/soffice -headles -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

在CentOs下面会缺少黑体和宋体的,直接找到Windows下面的字体目录把黑体和宋体复制进去到目录

/opt/openoffice4/share/fonts/truetype/

需要重启后才会生效(这里我直接把win7下的字体全部拖进去了)

2. 安装openoffice sdk

步骤同1, rpm -vih *.rpm

more

3. 安装jodconverter (目前版本为2.2.2, git上的显示两年没有更新了, 不需要安装, 有JAVA环境既可, 同时openoffice服务开启后才可以正常运行)

http://www.artofsolving.com/opensource/jodconverter 页面下方到SourceForge.net(点击既可下载)下载(如果被墙了,自己找梯子)

解压一下.放到/opt下.

拖个doc到服务器上, 测试一下成果

java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/doc/1.doc /tmp/pdf/1.pdf

查看一下, 生成成功了吧! ^^

(注意:jodconverter转换时,命令中如果存在中文,可能会出现乱码,如 朱智超.doc,会得到 ???.pdf, 这样在程序中就给上传的文件起个临时名字,转换后,重新再改名就可以绕过去了.)

(注意:在转换txt文件时, jodconverter转换后时而会出现乱码, 原因是win下的的txt默认为ANSI编码, centos默认utf-8. 必然要出错, 有如下两种办法解决

方法1.上传前,需要自行将txt另存为UTF-8编码,这样转换直接搞定!

方法2.上传转换过程中, 在转换前通过php读取并转换编码, 这样转换时也OK了!)

4. 安装swftools

http://www.foolabs.com/xpdf/download.html 下载中文支持 下载链接

http://www.zhuzichao.com/download/font.zip 下载字体

tar zxvf xpdf-chinese-simplified.tar.gz

unzip font.zip

中文支持安装:

mkdir –p /usr/local/share/xpdf

mv Gbsn00lp.ttf gkai00mp.ttf xpdf-chinese-simplified/CMap/

mv xpdf-chinese-simplified /usr/local/share/xpdf/

cd /usr/local/share/xpdf/xpdf-chinese-simplified

修改add-to-xpdfrc为如下内容

#----- begin Chinese Simplified support package (2011-sep-02)

cidToUnicode Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode

unicodeMap ISO-2022-CN /usr/local/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap

unicodeMap EUC-CN /usr/local/share/xpdf/chinese-simplified/EUC-CN.unicodeMap

unicodeMap GBK /usr/local/share/xpdf/chinese-simplified/GBK.unicodeMap

cMapDir Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/CMap

toUnicodeDir /usr/local/share/xpdf/chinese-simplified/CMap

displayCIDFontTT Adobe-GB1 /usr/local/share/xpdf/chinese-simplified/CMap/gkai00mp.ttf

#fontFileCC Adobe-GB1 /usr/local/....

#----- end Chinese Simplified support package

http://www.swftools.org/download.html 下载个稳定版 swftools-0.9.2.tar.gz 下载链接

swftools 0.9.2需要安装某些库,不然make install后没有pdf2swf这个功能

yum install freetype-devel

yum install libjpeg-devel

接下来就是./configure make make install的节奏了

最后测试一把吧!把刚才转换的pdf转换成swf,

pdf2swf -o /tmp/swf/1.swf -T -z -t -f /tmp/pdf/1.pdf -s languagedir=/usr/local/share/xpdf/xpdf-chinese-simplified -s flashversion=9

5. 生成缩略图

Swfrender这个工具在安装swftools的时候自带了.可以直接使用,试一下生成缩略图

swrender /tmp/swf/1.swf -o /tmp/img/1.png

Comments
Write a Comment