使用DsoFramer控件时遇到的问题及解决

业务描述:
项目中用户需要实现:pdf,word,txt文件的查看(暂时只有这几种格式,未来可能会有其他格式,还有可能会扩展编辑,保存,上传到服务器等功能)
环境:VS2013 Office 2016
我选择使用DsoFramer控件,展示word文件,具体步骤
1.下载dsoframer.ocx (我的百度分享:http://pan.baidu.com/s/1eRUdNxS 没有密码)
2.把下载的dsoframer.ocx文件复制到C:\Windows\SysWOW64(我是64位系统,32位系统复制到C:\Windows\System32)
3.注册:regsvr32 C:\Windows\SysWOW64\dsoframer.ocx(cmd命令)
4:注册后会提示注册成功
5:项目里添加Com组件:工具箱=》右键=》选择项=》Com组件=》DSO Framer Control Object=》确定
这里写图片描述

6:这个时候,工具箱里有 DSO Framer Control Object这个控件, 把控件拖到你的界面上。

这里写图片描述

7:代码

string[] ss = System.IO.Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*.doc");//也可以是.docx
            string path = ss[0];
            fileStream =FileHelper .FileToStream (path );
            try
            {

               // this.axFramerControl1.Open(path, true, "Excel.Sheet", "", "");
               this.axFramerControl1.Open(path, true, "Word.Document", "", "");

            }
           catch (Exception ex)
            {
            }

出现错误:
1.注册的时候报0x80070005 错误
解决:
错误代码0x80070005是没有使用管理员权限进行注册。
解决方法也很简单:
①开始
②搜索“cmd”
③右键点击“cmd”
④选择“以管理员身份运行”
然后再进行注册

2.项目的目标平台是Any CPU的时候,运行到InitializeComponent();的报错说,含有未注册的类
解决:我把目标平台改为X86,好了
3.运行到this.axFramerControl1.Open(path, true, “Word.Document”, “”, “”);的时候程序报错


捕捉到 System.Runtime.InteropServices.COMException
  _HResult=-2147217149
  _message=The associated COM server does not support ActiveX Document embedding.
  HResult=-2147217149
  IsTransient=false
  Message=The associated COM server does not support ActiveX Document embedding.
  Source=DsoFramerControl
  ErrorCode=-2147217149
  StackTrace:
       在 DSOFramer._FramerControl.Open(Object Document, Object ReadOnly, Object ProgId, Object WebUsername, Object WebPassword)
       在 AxDSOFramer.AxFramerControl.Open(Object document, Object readOnly, Object progId, Object webUsername, Object webPassword)
       在 OGT.MainLine.NodeDesigner.WordViewControl..ctor(Byte[] fileStreamBytes) 位置 Codes\新建文件夹\OGT.MainLine.NodeDesigner\WordViewControl.cs:行号 43
  InnerException:

解决:

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\WOW6432Node\CLSID{F4754C9B-64F5-4B40-8AF4-679732AC0607}\DocObject]@=”16”
把这两句代码放到Notepade++或者txt文件里,然后保存为 a.reg的格式(例如 DocObject.reg) ,然后双击

但是这样只是能加载Word文件(.doc,和.docx都可以,但是Excel文件还是报这个错误,最后也没找出问题所在,我打算试试PageOffice了)

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值