制作百度文库文件转换环境准备

系统环境:CentOs5.5 
用到的工具:ImageMagick,Openoffice 3,Openoffice-sdk 3,Jodconverter(这是一个jar包), Pdf2Swf tool,FlexPaper。网上找了些资料,早有人已经实现了这样的功能,结合网上的资料根据实现操作经验。记录并总结一下:

整体思路如下:
实现步骤: 1.图片和文档上传  2.图片和文档转成PDF  3. PDF转成SWF  4. 显示

一、image转换为pdf
1、需要工具为: ImageMagick包。在linux的ISO镜像包中存在。这是一款图像处理软件。
     查看Linux系统中是否已经存在convert命令:which  convert
     查看我们系统中ImageMagick的版本:rpm -qa|grep ImageMagick
2、安装。如果系统中没有安装,则挂载linux.iso镜像包,安装ImageMagick。
     挂载Linux.iso镜像包:mount -O ro /dev/cdrom /media
     进入镜像包安装ImageMagick.rpm工具:
        cd /media/Centos
        ls |grep ImageMagick
        rpm -ivh ImageMagick-6.2.8.0-12.el5.i386.rpm
    检查convert指令是否已经存在:which convert。
3、使用
①. 缩放
      convert -sample 80x40 input.jpg output.jpg #注意:缩放后图像保持原来的长宽比例 convert -sample 25%x25% 1.jpg 2.jpg
②.旋转图像
      convert -rotate 90 input.jpg output.jpg
③.为图像增加注释文字
      convert -font helvetica -fill white -pointsize 36 -draw 'text 10,50 "Floriade 2002, Canberra, Australia"' 1.jpg 2.jpg
④.特殊效果
      convert -charcoal 2 input.jpg output.jpg   #炭笔
      convert -colorize 255 input.jpg output.jpg   #着色 可以指定三种颜色 red/green/blue
      convert -implode 4 input.jpg output.jpg   #内爆效果
      convert -solarize 42 input.jpg output.jpg   #曝光,模拟胶片曝光
      convert -spread 5 input.jpg output.jpg     #随机移动,参数是位移大小
⑤.加边框
      convert -raise 5x5 input.jpg output.jpg
      convert +raise 5x5 input.jpg output.jpg
⑥.类型转换
      convert 1.jpg 1.png
      convert 1.png 1.bmp
      convert 1.bmp 1.gif

二、word转换为pdf
基于对Linux环境引入openoffice ,openoffice-sdk,Jodconverter(这是一个jar包)
1、查看系统已经安装的openoffice的版本:rpm -qa|grep openoffice。
     注意这里会有很多安装包说明openoffice已经安装,但是注意查看“openoffice.org-sdk-*”,这是openoffice-sdk安装包。
2、 安装。在安装的过程中需要注意,openoffice对java环境有依赖,需要Linux中预先已经安装jdk。
① 查看jdk是否已经安装:rpm -qa|grep jdk。
    如果没有安装,从已经挂载的Linux.iso镜像中安装:rpm -ivh  java-1.6.0-openjdk-1.6.0.0-1.24.1.10.4.el5.i386.rpm
②安装openoffice和openoffice-sdk:rpm -ivh openoffice.*.rpm(在安装的时候不要逐个安装,他们存在依赖关系,我们一起安装这些rpm包,有系统根据需要来依次安装)
3、启动openoffice。
①查找soffice的目录:locate soffice(通常soffice的目录结构为:/*/openoffice.org3/program/soffice )
②启动openoffice:/usr/lib/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
③查看openoffice启动监听情况:netstat -ntl查看8100端口的监听情况。或者:ps aux|grep openoffice查看命令的执行情况。
注意:在CentOs下面会缺少黑体和宋体的,如果缺少,直接现象就是当你转换的文档是这两种字体时,转换出来的pdf会出现乱码。
解决方法:直接找到Windows下面的字体目录把黑体和宋体复制进去到目录/usr/lib/openoffice.org/basis3.1/share/fonts/truetype中,window7的字体目录为:C:\Windows\Fonts,宋体(simsun.ttc)、黑体(simhei.ttf)。复制完成后,重启openoffice。(关闭openoffice是通过kill指令杀死openoffice进程来实现的,启动就是在此执行步骤②)。
4、安装jodconverter.2.2.2 ,安装了这个之后就已经可以实现DOC转PDF了。这个安装很简单,直接上网站下一个这个回来。
解压,复制到一个目录里面去,就能直接用了,调用它里面的/lib/jodconverter-cli-2.2.2.jar这个玩意儿就行。
运行命令测试: java -jar /usr/local/jodconvert/lib/jodconverter-cli-2.2.2.jar 1.doc 1.pdf

三、安装swftools
1、安装中文支持库:
mkdir –p /usr/share/xpdf
cd /usr/share/xpdf/
下载中文支持及字体库
wget  ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz
wget  http://www.nginxs.com/download/font.zip(这是从网上的,该服务已经不存在。搜索下载Gbsn00lp.ttf gkai00mp.ttf 即可)
tar -zxvf xpdf-chinese-simplified.tar.gz
mv Gbsn00lp.ttf gkai00mp.ttf xpdf-chinese-simplified/CMap/ 
cd /usr/share/xpdf/xpdf-chinese-simplified
编辑,加入新增的字体
vim add-to-xpdfrc
内容如下:
cidToUnicode Adobe-GB1 /usr/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap ISO-2022-CN /usr/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap EUC-CN  /usr/share/xpdf/chinese-simplified/EUC-CN.unicodeMap
unicodeMap GBK  /usr/share/xpdf/chinese-simplified/GBK.unicodeMap
cMapDir  Adobe-GB1 /usr/share/xpdf/chinese-simplified/CMap toUnicodeDir   /usr/share/xpdf/chinese-simplified/CMap
displayCIDFontTT Adobe-GB1 /usr/share/xpdf/chinese-simplified/CMap/gkai00mp.ttf
保存后退出
2、SwfTool安装:
wget  http://www.swftools.org/swftools-0.9.1.tar.gz
tar zxvf swftools-0.9.1.tar.gz
cd swftools-0.9.1
./configure --prefix=/usr/local/swftool
make
make install
测试一下是否可用
/usr/local/swftool/bin/pdf2swf -o /path/output.swf -T -z -t -f /path/yourpdffile.pdf -s languagedir=/usr/share/xpdf/xpdf-chinese-simplified -s flashversion=9
如果测试成功,那么就已经OK一大半了,就是显示的问题了。 

四、用FlexPaper实现在线预览
 这个是网上下载吧,看着demo改下JS就行了,里面是用的JS读取SWF的路径,这个简单吧,不讲了。 

猜你喜欢

转载自student-lp.iteye.com/blog/2099825