以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何让word文档 在webbrowse中只读显示,并且没有菜单、功能区工具栏?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=89606)

--  作者:zeroboss
--  发布时间:2016/8/25 12:52:00
--  [求助]如何让word文档 在webbrowse中只读显示,并且没有菜单、功能区工具栏?
搜了半天论坛没搜到,无奈只能求助专家了
--  作者:大红袍
--  发布时间:2016/8/25 13:42:00
--  

参考

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=89515&skin=0

 


--  作者:lzzhx
--  发布时间:2017/9/8 11:52:00
--  

    Dim oDocument As object = axWebBrowser.Gettype().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, Nothing, axWebBrowser, Nothing)

    Dim oApplication As object = axWebBrowser.Gettype().InvokeMember("Application", System.Reflection.BindingFlags.GetProperty, Nothing, oDocument, Nothing)

    

    oApplication.ActiveWindow.DocumentMap = False

    oDocument.Protect (Password:="123456", NoReset:=False, Type:= _

    MsWord.WdProtectionType.wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False)

    oDocument.saved = True

    vars("doc") = oDocument


出错  未找到类型“Document”的公共成员“Protect”,是什么原因?


--  作者:lzzhx
--  发布时间:2017/9/8 12:44:00
--  
换成office2007后,这个问题没有了,但只只读还是做不到 ,请问老师如何在浏览器窗口打开word并设为只读?
--  作者:有点甜
--  发布时间:2017/9/8 12:53:00
--  

报什么错?下面代码我测试没问题

 

    Dim oDocument As object = axWebBrowser.Gettype().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, Nothing, axWebBrowser, Nothing)
    Dim oApplication As object = axWebBrowser.Gettype().InvokeMember("Application", System.Reflection.BindingFlags.GetProperty, Nothing, oDocument, Nothing)
    oDocument.Protect (Password:="123456", NoReset:=False, Type:= _
    MsWord.WdProtectionType.wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False)
    oDocument.saved = True
    vars("doc") = oDocument


--  作者:lzzhx
--  发布时间:2017/9/8 13:09:00
--  
出错  未找到类型“Document”的公共成员“Protect”

报的是上面的错误。4楼说错了,换成2007还是这样的错误,另外只读怎么都搞不出来

--  作者:有点甜
--  发布时间:2017/9/8 13:44:00
--  
 上传具体实例例子测试。
--  作者:lzzhx
--  发布时间:2017/9/8 14:07:00
--  
例子如下,请老师看看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试office.zip



--  作者:有点甜
--  发布时间:2017/9/8 14:46:00
--  

Dim web As Windows.Forms.WebBrowser
web = e.Form.Controls("WebBrowser1").baseControl
AddHandler web.DocumentCompleted,addressof WebBrowser1_DocumentCompleted
web.ScriptErrorsSuppressed = True  \'发生角本错误后继续运行
axWebBrowser = Nothing
e.Form.Controls("WebBrowser1").OfficeToolBar = False
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Select Case dlg.FileName.SubString(dlg.FileName.LastIndexOf(".")+1,dlg.FileName.Length-dlg.FileName.LastIndexOf(".")-1)
        Case "doc","docx"
            web.Navigate(dlg.FileName)
            Do until axWebBrowser IsNot Nothing
                Application.DoEvents
            Loop

            Dim oDocument As object = axWebBrowser.Gettype().InvokeMember("Document", System.Reflection.BindingFlags.GetProperty, Nothing, axWebBrowser, Nothing)
            Dim oApplication As object = axWebBrowser.Gettype().InvokeMember("Application", System.Reflection.BindingFlags.GetProperty, Nothing, oDocument, Nothing)
            oApplication.ActiveWindow.DocumentMap = False
            oDocument.Protect (Password:="123456", NoReset:=False, Type:= _
            MsWord.WdProtectionType.wdAllowOnlyReading, UseIRM:=False, EnforceStyleLock:=False)
            oDocument.saved = True
            vars("doc") = oDocument
           
           
            Dim refmissing As [object] =  System.Reflection.Missing.Value
            Dim args As Object() = New Object(3){}
            args(0) = 24
            args(1) = 2
            args(2) = refmissing
            args(3) = refmissing
            axWebBrowser.[Gettype]().InvokeMember("ExecWB",256,Nothing,axWebBrowser,args)
        Case "xls","xlsx"
            web.Navigate(dlg.FileName)
        Case Else
            web.Navigate(dlg.FileName)
    End Select
End If


--  作者:lzzhx
--  发布时间:2017/9/8 15:57:00
--  
找了半天,原来是把lock写成look了,谢谢老师