PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > 开发编程 > ASP.NET教程 > 正文

    C# 中打开Word、pdf文件方法

    作者:admin来源:B5教程网浏览:时间:2020-09-30 00:07:50我要评论
    导读:网站开发中,会遇到C# 中打开Word、pdf文件,那如何实现呢??现在分享一个方法,分享给网友们。在工具箱上,单击右键,使用选择项,在COM...
    网站开发中,会遇到C# 中打开Word、pdf文件,那如何实现呢??现在分享一个方法,分享给网友们。
    在工具箱上,单击右键,使用选择项,在COM组件中找到“Microsfot Web Browser”项,确定即可。
     
    第二步,向窗体上添加“Microsfot Web Browser”控件,这个地方命名为wbDocView
     
    第三步,需要使用WebBrowser控件加载Word文档时,使用以下语句:
    wbDocView.Nagivate(yourfilename);
     
    遇到的第一个问题:打开第一个文件时可以,再次打开同一文件时,由于文件仍属性于打开状态,无法再次打开。窗体关闭时并不会主动关闭该文件,它要等到整个程序退出时才释放资源。
    解决办法:在窗体的FormClosing事件中,使用下列语句关闭文件:
    wbDocView.Navigate("about:blank");
     
    解决第二个问题,打开Word文件时,显示常用工具栏。MSDN 304662中介绍的是:
    Object refmissing = System.Reflection.Missing.Value;
    oDocument = null;
    axWebBrowser1.Navigate(strFileName, ref refmissing , ref refmissing , ref refmissing , ref refmissing);
    我按照同样的方法做时,总是出现“试图吊销一个未注册的拖放目标 (异常来自 HRESULT:0x80040100 (DRAGDROP_E_NOTREGISTERED))”的错误。很长时间不能解决。
    后来,在WebBrowser控件的NavigateComplete2事件中写入以下代码:
    axWebBrowser1.Navigate(strFileName, ref refmissing , ref refmissing , ref refmissing , ref refmissing);
    果然,“审阅”工具栏不再出现了,取而代之的是有“常用”、“字体”和“绘图”三个工具栏。暂时不管它了,以后再深入研究。
     
    解决第三个问题:适当的时候如何保存Word文件?
    同样,在NavigateComplete2事件中,写入以下代码以获取Document对象。
    object o = e.pDisp;
    oDocument = o.GetType().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, null, o, null);
    这里的oDocument是定义在窗体类中的一个私有字段:object oDocument = null;
    接下来,在“保存”按钮的Click事件中,用以下代码:(此时需要引入Office类库)
    object missing = System.Reflection.Missing.Value;
    Microsoft.Office.Interop.Word.DocumentClass doc = oDocument as Microsoft.Office.Interop.Word.DocumentClass;
    doc.Save();
    此时,窗体上的WebBrowser控件会处于假死状态,这时重新加载这个文件就可以了:
    wbDocView.Navigate(wbDocView.LocationURL);
    虽然加载过程会有明显的停顿与闪烁,但暂时不管它了。
     
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-11-493-1.html
    相关热词搜索: C# Word pdf