2" />
乔山办公网我们一直在努力
您的位置:乔山办公网 > office365 > java web实现在线预览word excel等文件,类似...-java实现office文档在线预览功能,<s

java web实现在线预览word excel等文件,类似...-java实现office文档在线预览功能,<s

作者:乔山办公网日期:

返回目录:office365


你是什么地方用,一般这个实在服务端实现,把word转成html,图片,或者swf来在浏览器查看。相对而言转成html的效果最好。

目前市面上已经有几个服务商在做,有的是基于openoffice做转换的,但是效果并不是很好,毕竟openoffice本身就很一般;还有的使用微软Office做转换,效果要好很多,但是毕竟核心转换技术是微软的,所以受制于人。

还有就是自行研发转换功能,不过这个一般企业根本做不到,国内也就金山和永中有这个实力,金山并没有这种产品,永中倒是有,效果也很不错,你可以度娘搜永中dcs,到他们网站看看,像腾讯邮箱,还有新华社,大型银行都在用,如果是个人用户,他们有免费的公有云版本,云转换,阿里巴巴用的就是这个,可以直接调用接口转换,免费使用。

网页链接



Excel这部分可以用SpreadJS,这是一个纯前端的控copy件,用于在线Excel表格展示预览操作。既然你是要实现在线预览,肯定是要包含前端的,SpreadJS本身是纯前端的,任何服务端语言都可以与之结合,所以java肯定也没问题。

Word这块可以找一找网上比较好的富文本工具,也可以实现word的在zhidao线预览。


微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出e799bee5baa6e79fa5e98193e58685e5aeb9361PDF文件,然后再利用免费的swftools.exe工具生成swf格式的Flash文件,网页中加载flexpaper免费开源工具(有广告)实现Flash文件的预览。
优点:
1、有效的保护的源文件及文件的复制,不可复制也是缺点。
2、源码是自己的,版权有保证。
缺点:
1、服务器上必须安装Office软件。
2、导出PDF文件本身是个打印过程,Excel页面格式未设置,会出现一张表格打印出多页来,阅读体验大大下降。
3、转换过程非常耗费资源,低配的CPU几乎能跑满,服务器卡死。转换时间也非常漫长,这个时间主要是卡在了转换PDF上面。
4、转换完成服务器会遗留大量Excel、Word进程无法正常退出,有一些折中的解决办法,可以在网上搜索。
5、设置非常麻烦,本身微软官方的说法Office软件是客户端程序,在与IIS交互的时候本身就未设计。所以很多程序员把精力浪费在了调试程序上面。有两点在调试的时候需要注意。一个是在web.config中设置 <identity impersonate="true" userName="administrator" password="你的服务器管理员密码" />,一个是在Office软件的设置中设置跟桌面交互。
6、严重浪费磁盘空间,一个文件还需要一个PDF文件、一个SWF文件,是否每次都转换,纠结是要硬盘空间呢还是要CPU的资源。

前提:本人的系统为Ubuntu 13.10 64位系统。本篇是我在配置好环境后一段时间写的,所以操作上可能会有也错误,因此仅供参考。
搜索在线显示office和pdf,最常见的方法就是把都转为swf,然后通过FlexPaper显示。这个方法有缺点,FlexPaper不支持所有浏览器(我只能在chrome中使用,firefox要进行设置)
我用的系统是Ubuntu 13.10 64位
一下所提到的软件,我都会在附件中分享
一、openoffice安装
下载附件中的Apache_OpenOffice_incubating_3.4.1_Linux_x86-64_install-rpm_zh-CN,解压,安装RPMS里面的所有deb包,然后按炸ungRPMS/desktop-integration 里面的openoffice.org3.4-redhat-menus_3.4-9594_all.deb。假如从网上下载下来的openoffice里面全市rmp包的话需要自己通过alien转换成deb(附件中的是我自己转换过的)
安装完成后就可以运行了
soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard

网上提示使用soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &的是后台运行
运行以后可以通过 netstat -ano | grep 8100 查看时候运行,上面的命e799bee5baa6e997aee7ad94e59b9ee7ad94364令是在8100运行oppenoffice
网上还说要安装OpenOffice SDK3.3这个东东,我没有装也可以转换
二、offie转pdf
下载附件中的jodconverter-2.2.2,通过命令
java -jar jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar XXX.docx XXX.pdf

转换office为pdf
三、安装freetype-2.4.6和jpeg-8c
不安装这两个的话是没有办法编译出swftools中的pdf2swf的
安装方法是进入目录,然后
./configure
make
make install

四、添加字体
下载附件中的chinese-simplified(里面已经添加了部分字体),解压,放到/usr/local/share/xpdf/中,如果没有xpdf文件夹就新建一个。
五、安装swftools
下载附件中的swftools-2013-04-09-1007,同样
./configure
make
make install

就可以了,运行
psf2swf

如果help提示的话表示安装成功
运行命令
pdf2swf -o XXX.swf -T -z -t -f XXX.pdf -s languagedir=/usr/local/share/xpdf/chinese-simplified -s flashversion=9

可以把pdf转换成swf了。

至此完毕
所有附件附件:http://pan.baidu.com/s/1hq7hU2g

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网