分析了下网易邮箱的文件预览功能,他用的是微软的组件,最早叫Officeonline,现在分开了叫Wordonline、Excelonline....等等,效果十分炫酷功能十分强大,但是查看了下对api的说明发现对服务器的要求比较苛刻而且配置比较复杂不太适合。然后又看了下腾讯用的是永中第三方组件,效果嘛自然比不上微软的但是能用,综合网上的一些资料大概也就那么几种方式实现
1.使用Microsoft的Office组件将文件直接转换为html文件(优点:代码实现最简单,工作强度最小。缺点:效果极差) 2.使用Microsoft的Office组件将文件转换为PDF格式文件,然后再使用pdf2swf转换为swf文件,也就是flash文件在使用FlexPaper展示出来(优点:预览效果能接受,缺点:代码量大) 3.使用Officeonline(优点:表现完美,缺点:不适合中小企业应用)综合考虑决定使用第二种方法,经过次次波折终于可以使用,但是有个问题至今没有得到解决,调用Office组件的时候有时候会出现如下异常:
检索COM类工厂中CLSID为{000209FF-0000-0000-C000-000000000046}的组件失败,原因是出现以下错误:8000401a因为配置标识不正确,系统无法开始服务器进程。请检查用户名和密码。(异常来自HRESULT:0x8000401A),查阅无数资料还是不能解决,最让人不可接受的的是office文件必须标标准准毫无容错能力,当转换ppt文件时竟然会弹出转换进度框!!
使用ASPOSE+pdf2swf+FlexPaper
关于ASPOSE大家可以到官网了解,这是款商业收费产品但是免费也可以使用
3、将pdf文件转swf的转换器放到站点根目录下新建文件夹pdf2swf(我就是这么配置的,您随意)
<scriptsrc="https://www.mfisp.com/FlexPaper/js/swfobject.js"type="text/javascript"></script>
<scripttype="text/javascript"src="https://www.mfisp.com/FlexPaper/js/flexpaper_flash.js"></script>
<divid="flashContent">
ToviewthispageensurethatAdobeFlashPlayerversion
10.0.0orgreaterisinstalled.
<scripttype="text/javascript">
varpageHost=((document.location.protocol=="https:")?"https://":"http://");

<scripttype="text/javascript">
var_filename=document.getElementById("_filename").value;
varswfVersionStr="9.0.0";
varxiSwfUrlStr="playerProductInstall.swf";
SwfFile:escape(_filename),
ZoomTransition:"easeOut",
FullScreenAsMaxWindow:false,
ViewModeToolsVisible:true,
allowscriptaccess:"sameDomain",
varattributes={id:"FlexPaperViewer",name:"FlexPaperViewer"};
swfobject.embedSWF("/FlexPaper/FlexPaperViewer.swf","flashContent","980","620",swfVersionStr,xiSwfUrlStr,flashvars,params,attributes);
swfobject.createCSS("#flashContent","display:block;text-align:left;");
document.getElementById("_filename").value是预览文件的路径
OK?大功告成?,至于如何上传,怎么保存上传的文件等等那些逻辑我这里就省略了。。。。,但是有个建议,当用户上传文件之后调用转换api生成预览文件是个耗时的操作,
文件越大耗时越长,也就是说生成预览文件的时候是需要时间的,因此我使用异步方式生成预览文件。
本文来源:虚拟主机--net实现Office文件预览(openoffice预览)
本文地址:https://www.idcbaba.com/zhuji/1823.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



