Ubuntu 服务器 PHP实现word、excel、ppt、pdf 等文档在线阅读功能的实现

原创 2013年12月04日 16:38:24

1、实现原理思路

要实现 word 等文档在线阅读,需要将文档转换成 swf 的 flash 文件,然后结合 flexpaper ,在页面上阅读显示。

这个转换过程有些复杂,首先需要我们把上传的文件转换成 pdf 格式的文件,然后在把 pdf 格式的文件转换为 swf 的格式。这个转换过程需要三个软件:

openoffice 软件可以把 word 等格式的文件转换成 pdf 

jodconverter 软件是java 的开放文档转换器,实际上是 jodconverter 调用openoffice 软件来转换文件,用这个软件还需要系统支持Java 环境,需要安装Java JDK

swftools 的 pdf2swf  可以把 pdf 格式的文件转换成 swf 格式

2、安装软件

系统环境:Ubuntu 12.04-server

下载软件:

Java JDK (最好先安装Java 环境,安装openoffice 可能会用的,我是先安装的 openoffice ,但是安装时报个跟Java相关的错误,然后我用 apt-get install openoffice.org-java-common 这个就没什么问题了,如果先安装Java,就不用在安装这个了)

到这个地址去下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 找好相应的 Linux 版本,这里我下载的 jdk-7u45-linux-x64.tar.gz 版本,然后解压缩放到相应位置(我放到 /usr/java),然后修改系统的配置文件 /etc/environment ,将刚刚的Java 路径添加的 PATH 里面:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/java/bin"

要使刚刚的配置文件生效,需要执行下:source /etc/environment

这里有片详细的安装文章,可以参考:http://www.cnblogs.com/fnng/archive/2013/01/30/2883815.html

openoffice 3.4.1 版本:

wget  http://jaist.dl.sourceforge.net/project/openofficeorg.mirror/localized/zh-CN/3.4.1/Apache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-deb_zh-CN.tar.gz

openoffice SDK

wget  http://jaist.dl.sourceforge.net/project/openofficeorg.mirror/stable/3.4.1/Apache_OpenOffice_incubating-SDK_3.4.1_Linux_x86-64_install-deb_en-US.tar.gz

JODConverter

wget   http://jaist.dl.sourceforge.net/project/jodconverter/JODConverter/2.2.2/jodconverter-2.2.2.zip

swftools 0.9.1 版本

wget   http://www.swftools.org/swftools-0.9.1.tar.gz

3、安装软件

安装顺序为Java JDK ,openoffice主程序,openoffice sdk,jodconverter(Java JDK的安装参照上面)

第一步安装 openoffice 主程序:

tar -zxvf  Apache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-deb_zh-CN.tar.gz   解压缩

cd  zh-CN/DEBS  进入到openoffice 的程序目录

dpkg  -i   *.deb  安装所有.deb 格式的文件

第二步安装 openoffice sdk :

tar  -zxvf  Apache_OpenOffice_incubating-SDK_3.4.1_Linux_x86-64_install-deb_en-US.tar.gz  解压缩文件

cd  en-US/DEBS   进入到程序安装文件目录

dkpg  -i  *.deb  安装deb 文件

安装位置:openoffice 软默认安装在  /opt/openoffice 和  /opt/openoffice3 下面

启动服务:/opt/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

可以用 netstat -a | grep 8100   命令来查看端口,或者 用 ps -ef|grep soffice 查看程序进程

然后将openoffice 设置为开机启动:

将 /opt/openoffice.org3/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & 添加到  /etc/rc.local 文件里

第三步安装 jodconverter-2.2.2:

JODConverter其实不用安装 解压了就行,安装了这个之后就已经可以实现DOC转PDF了。

unzip jodconverter-2.2.2.zip  解压

mv  jodconverter-2.2.2  /opt  移动到 /opt 目录下

接下来,就可以测试将doc xls pptx 等文件转换为 pdf 文件了:

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

但是现在还有一个问题,你会发现如果你转换的是 中文的文档,转换完的pdf 文件会显示乱码,原因是openoffice 软件没有安装中文字体:

解决方法:给 openoffice 软件安装 宋体、黑体等字体,可以直接打开你系统的 C盘的 C:\Windows\Fonts 目录下面的 simsong.ttf simhei.ttf 等中文字体上传到openoffice的字体目录 /usr/share/fonts/truetype/openoffice 目录下,即可

第四步安装 swftools :

安装 swftools 需要依赖 freetype、jpeglib 两个类库:

下载 freetype : wget  http://ftp.twaren.net/Unix/NonGNU//freetype/freetype-2.4.12.tar.gz

下载 jpeglib :   wget  http://www.ijg.org/files/jpegsrc.v9.tar.gz

这两个文件分别解压缩后,进入文件夹,编译源码安装即可:

tar  -zxvf  freetype-2.4.12.tar.gz

cd  freetype-2.4.12

./configure

make 

make install

jpegsrc.v9.tar.gz 安装同 freetype

接下来安装swftools :

tar -zxvf  swftools-0.9.1.tar.gz

cd  swftools-0.9.1

./configure 

make 

make install

swftools 安装完成,接下来安装swftools 的 xpdf 和 字体:

wget ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz

wget http://www.nginxs.com/download/font.zip

解压 xpdf-chinese-simplified.tar.gz 和 font.zip 并修改配置文件

tar -zxvf  xpdf-chinese-simplified.tar.gz

unzip  font.zip 

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

把 xpdf-chinese-simplified 移动到 /usr/share/xpdf

mkdir -p /usr/share/xpdf

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

修改配置文件

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

vim  add-to-xpdfrc

将下面的内容覆盖掉add-to-xpdfrc文件中相同的部分

cidToUnicode    Adobe-GB1       /usr/share/xpdf/xpdf-chinese-simplified/Adobe-GB1.cidToUnicode
unicodeMap      ISO-2022-CN     /usr/share/xpdf/xpdf-chinese-simplified/ISO-2022-CN.unicodeMap
unicodeMap      EUC-CN          /usr/share/xpdf/xpdf-chinese-simplified/EUC-CN.unicodeMap
unicodeMap      GBK             /usr/share/xpdf/xpdf-chinese-simplified/GBK.unicodeMap
cMapDir         Adobe-GB1       /usr/share/xpdf/xpdf-chinese-simplified/CMap
toUnicodeDir                    /usr/share/xpdf/xpdf-chinese-simplified/CMap
displayCIDFontTT        Adobe-GB1       /usr/share/xpdf/xpdf-chinese-simplified/CMap/gkai00mp.ttf

OK  swftools 现在已经安装完成,可以转换个pdf 文件测试下:

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

OK 在PHP 程序中可以在上传完成后,调用这两个命令把文档转换为最终的 swf 文件,前端页面结合 flexpaper 显示即可


PHP 实现Word,excel等转换pdf

最近做一个项目,需要将用户上传的word,excel文档转成PDF文档保存并打印,在网上找了很多资料,并不全面,所以自己写了一份比较全面的教程来分享。 下面是操作步骤: 1、        安装免费的...
  • jzh2004
  • jzh2004
  • 2015年06月10日 13:35
  • 8517

基于域名的虚拟主机配置(Nginx在 Linux下配置)

利用工具绑定域名: 需求: 两个域名指向同一台nginx服务器,用户访问不同的域名显示不同的网页内容 两个域名是www.nginx1.com和www.nginx2.com nginx服务器使用...

centos7没有安装ifconfig命令的解决方法

首次安装centos7 使用ifconfig查看ip 出现如图 通过搜索发现没有安装ifconfig 通过yum search 这个命令我们发现ifconfig这个命令是在...
  • hg421
  • hg421
  • 2017年05月24日 14:25
  • 110

asp.net实现word、excel、ppt、pdf在线预览

引言 之前项目需要,查找了office文档在线预览的解决方案,顺便记录一下,方便以后查询。 方案一 直接在浏览器中打开Office文档在页面上的链接。会弹出如下窗口:   优点:主流浏览器都...

java通过url在线预览Word、excel、ppt、pdf、txt文档中的内容【只获得其中的文字】

在页面上显示各种文档中的内容。在servlet中的逻辑 word:  BufferedInputStream bis = null;   URL url = null;   HttpU...

使用PageOffice实现文档(word,excel,pdf)在线预览编辑

最近发现一款不错的插件的PageOffice,地址是:http://www.zhuozhengsoft.com/Technical/  他可以实现word,excel、pdf在线预览以及在线编辑。虽然...

实现Word、Excel、Txt文档在线转换为Swf(或PDF)

测试环境:Win2003+IIS6+Office2007+ASP+Adobe Macromedia FlashPaper 2.2。 备注说明:建议使用Office2007或以上,原因是Offic...
  • wowmboy
  • wowmboy
  • 2014年01月15日 20:09
  • 1993

关于论坛实现pdf,word等文档在线预览的功能探讨

论坛引擎:Discuz! 2.5 工具:flexpaper1.5.6 二次开发版本 本文主要探讨大体的思路及相关技术难点问题,属个人工作之余的一些小小开发,仅供探讨,嘿嘿、、、 实现效果如图: ...
  • kunoy
  • kunoy
  • 2012年09月04日 16:32
  • 13227

类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版

1.首先上网搜索一下有什么解决方案 (1).将文档转换为html,只支持支持office文档 (2).将文档转换为flash,实现类似百度文库的效果,除支持office文档外还支持pdf   (1)...

类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版

1.首先上网搜索一下有什么解决方案 (1).将文档转换为html,只支持支持office文档 (2).将文档转换为flash,实现类似百度文库的效果,除支持office文档外还支持pdf   (1)...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ubuntu 服务器 PHP实现word、excel、ppt、pdf 等文档在线阅读功能的实现
举报原因:
原因补充:

(最多只允许输入30个字)