php在linux系统下实现百度文库功能 doc或pdf转swf预览功能
系统环境:CentOs5.5
用到的工具:Openoffice 3 , Pdf2Swf tool , Jodconverter , FlexPaper
网上找了些资料,早有人已经实现了这样的功能,只不过是用JAVA来写的东东,PHP的没找着。
结合网上的资料根据实现操作经验。
纪录并总结一下:
整体思路如下:
实现步骤: 1. DOC上传 2. DOC转成PDF 3. PDF转成SWF 4. 显示
基于对Linux环境引入openoffice sdk + pdf2swf tool,分两个步骤,先利用openoffice sdk把文档统一转成pdf,然后利用pdf2swf tool把pdf转成swf
实现过程:
要实现DOC转成PDF,在LINUX下面有Openoffice可以实现。
那么首先需要的是安装Openoffice这个东东。
1. 安装openoffice3
这个安装过程很纠结,遇到过各种问题,因为先后在几台服务器上安装过,最顺利的安装方法如下,如果遇到问题请看前面的文章有讲openoffice的安装。
这个安装过程很纠结,遇到过各种问题,因为先后在几台服务器上安装过,最顺利的安装方法如下,如果遇到问题请看前面的文章有讲openoffice的安装。
tar zxvf OOo_3.3.0_Linux_x86-64_install-rpm-wJRE_zh-CN.tar.gz
cd RPEM
rpm -ivh *.rpm --nodeps –force
安装后的默认目录是在:/opt/目录下面
启动服务:
/opt/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
在CentOs下面会缺少黑体和宋体的,直接找到Windows下面的字体目录把黑体和宋体复制进去到目录
/opt/openoffice.org/basis3.3/share/fonts/truetype/
需要重启后才会生效
2. 安装OpenOffice SDK3.3
tar zxvf OOo-SDK_3.3.0_Linux_x86-64_install-rpm_en-US.tar.gz
cd OOO330_m20_native_packed-1_en-US.9567/RPMS/
rpm -vih *.rpm
3. 安装jodconverter.2.2.2 ,安装了这个之后就已经可以实现DOC转PDF了。
这个安装很简单,直接上网站下一个这个东东回来。
解压,复制到一个目录里面去,就能直接用了,调用它里面的/lib/jodconverter-cli-2.2.2.jar这个玩意儿就行,可以直接运行命令测试:
java -jar /usr/local/wenku/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/1.doc /tmp/1.pdf
4. 安装swftools
中文支持安装:
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
tar zxvf xpdf-chinese-simplified.tar.gz
unzip font.zip
mv Gbsn00lp.ttf gkai00mp.ttf xpdf-chinese-simplified/CMap/ cd /usr/share/xpdf/xpdf-chinese-simplified
编辑,加入新增的字体
vim add-to-xpdfrc
内容如下:
cidToUnicodeAdobe-GB1/usr/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMapISO-2022-CN/usr/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMapEUC-CN/usr/share/xpdf/chinese-simplified/EUC-CN.unicodeMap
unicodeMapGBK/usr/share/xpdf/chinese-simplified/GBK.unicodeMap
cMapDirAdobe-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
保存后退出
SwfTool安装:
cd /usr/local/wenku
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 6)make
make install
测试一下是否可用
pdf2swf -o /usr/output.swf -T -z -t -f /usr/test1.pdf -s languagedir=/usr/local/share/xpdf/chinese-simplified -s flashversion=9
如果测试成功,那么就已经OK一大半了,就是显示的问题了。
5. 用FlexPaper实现在线预览
这个是网上下载吧,看着demo改下JS就行了,里面是用的JS读取SWF的路径,这个简单吧,不讲了。
PHP来调用LINUX命令实现转换,可能会遇到一个问题说PHP没有执行权限,注意把PHP的用户改成权限也就是nobody这个用户的权限。
下面是我自己写的代码,PHP初学不久,不够精简,仅供参考
Yii框架中文件转换功能,DOC转SWF
php在linux系统下实现百度文库功能 doc或pdf转swf预览功能 2012-09-14 08:46:24 | 1232次阅读 | 评论:0 条 | itokit php在linux系统下实现百度文库功能 doc或pdf转swf预览功能 百度文库中,有些文件上传后,会自动生成swf文件,可以让用户在线阅读或在线预览的功能。怎么实现这个功能呢?在linux+php环境下,我们就使用openoffice和FlexPaper来实现百度文库的功能。 系统环境:CentOs5.5 用到的工具:Openoffice 3 , Pdf2Swf tool , Jodconverter , FlexPaper 网上找了些资料,早有人已经实现了这样的功能,只不过是用JAVA来写的东东,PHP的没找着。 结合网上的资料根据实现操作经验。 纪录并总结一下: 整体思路如下: 实现步骤: 1. DOC上传 2. DOC转成PDF 3. PDF转成SWF 4. 显示 基于对Linux环境引入openoffice sdk + pdf2swf tool,分两个步骤,先利用openoffice sdk把文档统一转成pdf,然后利用pdf2swf tool把pdf转成swf 实现过程: 要实现DOC转成PDF,在LINUX下面有Openoffice可以实现。 那么首先需要的是安装Openoffice这个东东。 1. 安装openoffice3 这个安装过程很纠结,遇到过各种问题,因为先后在几台服务器上安装过,最顺利的安装方法如下,如果遇到问题请看前面的文章有讲openoffice的安装。 tar zxvf OOo_3.3.0_Linux_x86-64_install-rpm-wJRE_zh-CN.tar.gz cd RPEM rpm -ivh *.rpm --nodeps –force 安装后的默认目录是在:/opt/目录下面 启动服务: /opt/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & 在CentOs下面会缺少黑体和宋体的,直接找到Windows下面的字体目录把黑体和宋体复制进去到目录 /opt/openoffice.org/basis3.3/share/fonts/truetype/ 需要重启后才会生效 2. 安装OpenOffice SDK3.3 tar zxvf OOo-SDK_3.3.0_Linux_x86-64_install-rpm_en-US.tar.gz cd OOO330_m20_native_packed-1_en-US.9567/RPMS/ rpm -vih *.rpm 3. 安装jodconverter.2.2.2 ,安装了这个之后就已经可以实现DOC转PDF了。 这个安装很简单,直接上网站下一个这个东东回来。 解压,复制到一个目录里面去,就能直接用了,调用它里面的/lib/jodconverter-cli-2.2.2.jar这个玩意儿就行,可以直接运行命令测试: java -jar /usr/local/wenku/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/1.doc /tmp/1.pdf 4. 安装swftools 中文支持安装: 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 tar zxvf xpdf-chinese-simplified.tar.gz unzip font.zip mv Gbsn00lp.ttf gkai00mp.ttf xpdf-chinese-simplified/CMap/ cd /usr/share/xpdf/xpdf-chinese-simplified 编辑,加入新增的字体 vim add-to-xpdfrc 内容如下: cidToUnicodeAdobe-GB1/usr/share/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode unicodeMapISO-2022-CN/usr/share/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap unicodeMapEUC-CN/usr/share/xpdf/chinese-simplified/EUC-CN.unicodeMap unicodeMapGBK/usr/share/xpdf/chinese-simplified/GBK.unicodeMap cMapDirAdobe-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 保存后退出 SwfTool安装: cd /usr/local/wenku 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 6)make make install 测试一下是否可用 pdf2swf -o /usr/output.swf -T -z -t -f /usr/test1.pdf -s languagedir=/usr/local/share/xpdf/chinese-simplified -s flashversion=9 如果测试成功,那么就已经OK一大半了,就是显示的问题了。 5. 用FlexPaper实现在线预览 这个是网上下载吧,看着demo改下JS就行了,里面是用的JS读取SWF的路径,这个简单吧,不讲了。 PHP来调用LINUX命令实现转换,可能会遇到一个问题说PHP没有执行权限,注意把PHP的用户改成权限也就是nobody这个用户的权限。 下面是我自己写的代码,PHP初学不久,不够精简,仅供参考 Yii框架中文件转换功能,DOC转SWF