附件在线预览控件实现的市场调研[通俗易懂]

附件在线预览控件实现的市场调研[通俗易懂]附件在线预览控件实现的市场调研

大家好,又见面了,我是你们的朋友全栈君。

#附件在线预览控件实现的市场调研
注:此为博主(yjclsx)市场调研的原创文档,若要转载,请标明出处!
##一、POI实现
使用poi组件(是java的jar包,因此.net不支持)可以将excel、word转换为html,将ppt转换为图片,这些都是可以直接被浏览器识别的文件类型,由此实现在线预览功能。
原excel如下:
原excel效果图
原word如下:
这里写图片描述
原ppt如下:
这里写图片描述
效果展示如下:
excel转html:
这里写图片描述
ppt转图片:
这里写图片描述
word转html:
这里写图片描述
可见,excel转成的页面格式不太好看,ppt转成图片后有些不是宋体的中文字会出现框框。
##二、OpenOffice实现
###2.1、转换为html或者pdf
OpenOffice是免费的一套跨平台的办公室软件套件,有windows和linux版本。这里需要基于它的服务(需要启动openffice进程)利用jodconverter(java的jar包)把文件(.doc、.docx、.xls、.ppt)转换为html或者pdf。效果如下:
word转pdf:
这里写图片描述

word转html:
这里写图片描述

excel转html:
这里写图片描述
excel转pdf:
这里写图片描述
ppt转html:
这里写图片描述
ppt转pdf:
这里写图片描述
使用openOffice效果比poi明显好,没有中文乱码等问题,使用openOffice转换成pdf比转换成html效果好,安装了Adobe Reader XI可以在浏览器直接打开pdf,达到预览的效果。
###2.2、Flash预览
使用openOffice转换成pdf后,再通过swfTools将pdf文件转换成swf格式的文件,最后通过FlexPaper文档组件在页面上进行展示。百度文库和豆丁网都是使用flash的形式在网页上展示的,播放的时候,修改了flexpaper,让它支持一次仅读取指定页数的flash。
word预览效果如下:
这里写图片描述
缺点:转换过程非常耗费资源,一个文件还需要一个PDF文件、一个SWF文件浪费磁盘空间。
##三、Office文档直接转换为SWF,通过网页加载Flash预览
利用flashpaper直接转换为SWF文件,然后利用flexpaper预览Flash文件。
flashpaper是Macromedia的一款产品,随着被Adobe公司收购,Macromedia对于这款软件已放弃了。
##四、office web apps
Office Web Apps是由微软推出的基于Web端的在线办公工具,让你可以从几乎任何地方共享自己Office文档。后更名为Office Online,服务对应地更名为Word Online、Excel Online、PowerPoint Online和OneNote Online。钉钉、126邮箱的文件预览就是使用的Office Online。
使用该方案的优点:
   1.现有代码改动量很小,几乎可以忽略不计,无需自己写代码。
   2.支持文档类型很全面,doc,ppt,xls,docx,pptx,xlsx,pdf。
   3.手机和pc都支持,支持文档缓存,分页浏览。
   4.免费。
使用该方案的缺点:
   1.安装部署十分麻烦,相关文档也较少,不易上手。
   2.转换文档需要两台服务器,一台为转换server,另外一台为域控server。
   3.只运行在windows服务器上。
excel预览效果如下:
这里写图片描述
##五、付费软件
 Office Web 365在线预览云服务(http://www.officeweb365.com):优点是代码量几乎为0,缺点是文件都上传到了它的服务器上。
 永中office在线预览(http://dcs.yozosoft.com/index.html):QQ邮箱、163邮箱等都是使用的这款服务。
运行环境:jre8、apache-tomcat-8.0.26、nginx以及转换所需的字体。
部署流程(linux下):1、安装JDK8;2、Tomcat配置;3、部署DSC工程;4、安装nginx。
java再使用时需引入第三方工具包:commons-logging-1.1.jar,httpclient-4.5.jar,httpcore-4.4.1.jar,httpmime-4.5.jar,详细调用方法和API请看官方的说明文档。
excel效果预览如下:
这里写图片描述
 科瀚的SOAOffice中间件(http://www.kehansoft.com/soaoffice/index.htm)。
 卓正软件的pageoffice控件(http://www.zhuozhengsoft.com/ ):
支持的浏览器有:IE(Internet Explorer)6、IE7、IE8、IE9、IE0、搜狗、傲 游、MyIE、猎豹、百度、360、世界之窗、QQ浏览器;Chrome需要安 装ActiveX for Chrome插件、FireFox需要安装IETab插件;
使用步骤:
   1、解压下载到的PageOffice软件包。
   2、拷贝示例文件夹到Tomcat的webapps文件夹下,重新启动Tomcat服务,通过浏览器访问示例页面即可。
   3、浏览包含PageOffice的页面会提示安装PageOffice客户端控件,点击允许。安装客户端控件后,控件会弹出注册对话框,填写软件包里附带的试用序列号即可注册激活软件。然后您就可以浏览PageOffice示例代码,查看各种功能效果了。
市面上的其他付费软件服务还有,这里不再列举了!
##六、调研结论
  基于我司实际情况,得出以下结论:
  POI由于预览效果不是很好,不建议使用。
  Flashpaper缺少后续支持,不建议使用。
  第三方付费产品中,Office Web 365 完成依赖于第三方云服务,在安全性、灵活性、稳定性为验证,不建议使用;科瀚的SOAOffice和卓正软件的pageoffice需要浏览器Activex插件的支持,对用户不是很友好,不建议试用。
  剩下的OpenOffice、Office Web Apps、永中office中,OpenOffice的预览效果稍差,但集成方便;Office Web Apps预览效果最佳,钉钉、126等也采用此方式,但估计集成难度稍大,另外钉钉的预览偶尔也出现不稳定的情况;永中office的预览效果和集成难度比较平衡,但需付费。这三种方案还需要再做选择,希望大家提一些建议。

注:此为博主(yjclsx)市场调研的原创文档,若要转载,请标明出处!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146566.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 深度学习图像标注工具汇总

    深度学习图像标注工具汇总对于监督学习算法而言,数据决定了任务的上限,而算法只是在不断逼近这个上限。世界上最遥远的距离就是我们用同一个模型,但是却有不同的任务。

  • pycharm没有卸载干净怎么办_pycharm怎么保存为py文件

    pycharm没有卸载干净怎么办_pycharm怎么保存为py文件卸载pycharm的时候提示有文件正在被占用,解决方案是任务管理器

  • vue开发环境搭建(win7)

    vue开发环境搭建(win7)vue开发环境搭建-win71.安装node,js2.设置nodeglobal(全局)和cache(缓存)路径3.配置环境变量4.基于Node.js安装cnpm(淘宝镜像)5.安装vue6.安装vue脚手架vue-cli7.项目创建8.添加相关依赖9.修改端口号10.运行项目1.安装node,js下载node.js安装包:node.js下载官网在这里,我选择…

  • 大学微积分函数的极限_微积分基本公式求极限

    大学微积分函数的极限_微积分基本公式求极限LaTeX语法参考:http://www.mohu.org/info/lshort-cn.pdf第一讲:函数实数与数轴,实数集(区间、邻域)。有界集与确界。函数及常用函数(函数三要素、数列(整标函数)、基本初等函数、初等函数)。【分段函数是否一定非初等;y​​=&Negati

  • 云硬盘

    云硬盘

  • JavaScript和Java的区别[通俗易懂]

    JavaScript和Java的区别[通俗易懂]  虽然JavaScript中有Java,但他们之间的关系就如同印度和印度尼西亚一样——没有什么关系。只是JavaScript中的某些语法和Java类似而已。出身不同  Java和JavaScript是由不同公司发布的不同的产品,Java是由Sun公司发布编程语言,而JavaScript是由Netscape公司发布的脚本语言。变量不同1.变量定义时的区别  定义变量时Java和JavaScript有区别。Java是强类型的语言,它要求每个变量必须在定义时明确指出这个变量是什么类型的;而JavaS

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号