通过VC实现word文档预览功能,即仅让浏览,不让复制、编辑和保存。
总体思路是:先调用office的ole接口,将word文档转换为pdf;再利用swtools将pdf转换为swf;最后利用VC自带的activeX控件shockwaveflash object(flash.ocx)来播放swf。
转换的过程稍微有一点点延迟,最后的浏览效果还是可以的。
之所以要这么转来转去的原因在于:
(1)在网上没有找到officeole接口的介绍,不知道能不能直接实现打开word文档禁止复制、编辑和保存,更不知道如何做;
(2)在网上找到了一个CPdf类可以在将Pdf播放器嵌入VC中,但是它需要安装adobeacrobat(或adobe acrobat reader)并且将它们的全部菜单都集成进来了,无法对其进行修改;
(3)网上面有人说类似百度文库的预览效果都是通过转换为flash实现的,于是研究了一下flash的实现效果,发现可行。但是在网上没有找到能够直接从word转换为swf的工具(也没有深入去找),找到了SWFTools,免费、体积很小,但只能实现pdf、jpg等少数几种格式的转换。
结合以上几点,最终形成了本文这种稍微有点繁琐的转换方案。
下面详细介绍一下实现过程(本文的编程环境为vs2003.net):
<