一、有没有办法让HTML5 canvas显示/预览word/excel/powerpoint 文档
目前找到的几种方式:
1.像以前的百度文库那样,先转换成flash,然后放在网页上。
说明:使用软件OpenOffice/LibreOffice,swftools。
优点:在国内,由于Flash安装量很大,而且很多人用IE和Chrome内核的浏览器,所以是可以查看的。
缺点:OpenOffice/LibreOffice转换的结果可能会丢失格式/排版(我没试过所以不知道会不会),而且比较耗服务器资源,如果浏览器没装Flash就没法查看文档了,尤其是移动端。
2.转换成PDF,然后用Mozilla的pdf.js查看。
说明:转换成PDF的方法可以用OpenOffice/LibreOffice,也可以用七牛的第三方服务“文档转换”(由亿方云提供)。
优点:如果是把文件存放在七牛云,用在线的服务会比较有保障,加载速度也快。
缺点:收费,不过费用很低廉,pdf.js可能比较大,加载相对慢点,放到七牛上面会好些,对移动端支持不好。
3.转换成HTML,像现在的百度文库那样。
说明:使用PHPOffice和PDFtoHTML将文档转换成HTML直接在浏览器输出,类似现在的百度文库。
优点:浏览器无需安装任何插件,也不用担心兼容性问题,还支持移动端。
缺点:可能会丢失格式,而且用户可以直接拷贝文档内容,如果是扣积分下载的话,可能达不到目的。
二、本地站点上的html文档直接打开本地站点上的word文档而不是下载,
web页面无法支持预览office文档,但是却可以预览PDF、flash文档,所以大多数解决方案都是在服务端将office文档转换为pdf,然后再通过js的pdf预览插件(谷歌浏览器等已经原生支持嵌入PDF文档)进行查看。
Aspose 后台转换可以使用Aspose将office文档转换为PDF格式,Aspose功能强大,支持编辑/转换word、excel、ppt、pdf等,且API操作简便快速。Aspose是收费的,你需要下载破解版本。
除了Aspose可以编辑文档,类似的还有NPOI 、POI等。 1、利用flexPaper预览swf文件,百度文库就是这种方式 由于现在flash插件用得已经很少,此处不再赘述,详细请看这里 2、pdfjs pdfjs是firefox浏览器内置的pdf预览插件,由于是开源的,我们也可以使用它,ie版本只支持ie9/ie9+。
它通过将pdf转换为html元素再添加一些css3的样式达到pdf的预览效果,文档样式与原文档几乎没有太大区别。 3、在页面中嵌入多媒体对象(PDF、flash、video等) 缺点是不同的浏览器支持及呈现不一致,比如pdf目前只有webkit浏览器原生支持嵌入,而且移动端的webkit浏览器也是不支持的。
PDF嵌入可以采用已封住好操作的插件PDFObject,也可以通过浏览器API自行编写。 另外,个人建议可以用md(markdown,拥有类似word文档的操作,可在线修改、预览,前后台数据调用非常方便)文件来保存在线预览的文档,不要用office类的文件格式保存,关于markdown的用法可参考其官网:网页链接。
转载请注明出处51数据库 » html5在线预览word文件格式