帝国CMS在CentOS环境下实现在线文档网站(类似百…
2018-07-13 08:53:58来源:编程学习网 阅读 ()
最近花了几个星期的时间,折腾了一个在线文档网站,类似百度文库的功能,主要涵盖教育类文档。
测试的话是在windows环境下,不细述,主要概述一下centos环境下的部署:
系统环境:CentOs6.2
web环境:apache2,mysql5,php5
CMS系统:帝国CMS(基于文档下载系统开发)
用到的工具:Openoffice 3.4.1 , pdf2swf tools, jodconverter , flexpaper
网上百度/谷歌来的资料,基本上都是用java来写的,如果在帝国CMS(PHP开发)中调用Servlet,比较繁琐,且效率较低,所以考虑用PHP代码来实现。大致思路参考了网上的资料:
实现步骤: 1. Office文件(doc/ppt/xls)上传 2. Office转成PDF 3. PDF转成SWF 4. 用Flexpaper显示SWF文件
基于对CentOS环境引入openoffice sdk + pdf2swf tool,分两个步骤,先利用openoffice sdk把文档统一转成pdf,然后利用pdf2swf tools把pdf转成swf
实现过程
要实现DOC转成PDF,在LINUX下面有OpenOffice可以实现。
那么首先需要的是安装Openoffice:
1.网上下载OpenOffice:选择Linux x86-64 RPM简体中文版下载
2.解压:tar zvxf Apache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-rpm_zh-CN.tar.gz
3.进入目录:cd zh-CN/RPMS
4.安装:rpm -ivh *.rpm --nodeps –force 安装后的默认目录是在:/opt/目录下面
5.启动服务:/opt/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
6.在CentOs下面会缺少黑体和宋体的,直接找到Windows下面的字体目录把黑体和宋体复制进去到如下目录:
/opt/openoffice.org/basis3.3/share/fonts/truetype/ 需要重启后才会生效
接下来安装OpenOffice SDK3.3:
1.下载:选择Linux x86-64 RPM SDK下载
2.解压:tar zxvf OOo-SDK_3.4.1_Linux_x86-64_install-rpm_en-US.tar.gz
3.进入目录:cd en-US/RPMS/
4.安装:rpm -vih *.rpm
然后安装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 test.doc test.pdf
下面安装SWFTools:
中文支持安装:
mkdir –p /usr/local/share/xpdf cd /usr/local/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 make make install
测试一下是否可用:pdf2swf -o /path/test.swf -T -z -t -f /path/test.pdf -s languagedir=/usr/share/xpdf/xpdf-chinese-simplified -s flashversion=9
如果测试成功,那么就已经OK一大半了,接下来就是显示的问题了。
最后用FlexPaper实现在线预览
这个是网上下载吧,模仿demo改下JS就行了,里面是用的JS读取SWF的路径,这个简单吧,不讲了。
最后在帝国CMS添加下载文件地址时,用Ajax异步提交调用PHP来调用LINUX命令实现转换:
当添加下载地址完成后,捕捉到该input失去焦点事件调用ajax实现文档转化功能:
1.在AddNews.php中找到<div id="TabPane1">,在下面添加一段js代码:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
2.往下在
<?php include($modfile); ?>
之下添加js代码如下:
下面在某一目录(根据个人习惯)下创建doc2swf.php文件,代码如下:
这样就实现了文档上传自动转化为可通过flexpaper在线显示的swf文件格式了
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Centos7下crontab+shell脚本定期自动删除文件 2018-11-22
- Centos如何设置开机自动启动Redis 2018-07-13
- 如何在Ubuntu/CentOS上安装Linux内核4.0 2018-07-13
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一) 2018-07-13
- CentOS 5.10系统安装配置图解教程 2018-07-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash