WPF WebBrowser的打印方法

1、引用system32中的SHDocVw.dll

2、引用命名空间

    using System.Runtime.InteropServices;
  using SHDocVw;

3、在所在的类定义变量

 

代码
[ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
[Guid(
"6d5140c1-7436-11ce-8034-00aa006009fa")]
internal interface IServiceProvider
{
   [
return: MarshalAs(UnmanagedType.IUnknown)]
   
object QueryService(ref Guid guidService, ref Guid riid);
}
static readonly Guid SID_SWebBrowserApp = new Guid("0002DF05-0000-0000-C000-000000000046");

 

 

4、打印方法

 

代码
            IServiceProvider serviceProvider = null;
            
if (webbrowse.Document != null)
            {
                serviceProvider 
= (IServiceProvider)webbrowse.Document;
            }
            Guid serviceGuid 
= SID_SWebBrowserApp;
            Guid iid 
= typeof(SHDocVw.IWebBrowser2).GUID;
            SHDocVw.IWebBrowser2 myWebBrowser2 
= (SHDocVw.IWebBrowser2)serviceProvider.QueryService(ref serviceGuid, ref iid);
            
object NullValue = null;
            myWebBrowser2.ExecWB(SHDocVw.OLECMDID.OLECMDID_PRINT, SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_PROMPTUSER, 
ref NullValue, ref NullValue);

 


      

posted @ 2011-01-08 09:27  nfyz  阅读(1543)  评论(0编辑  收藏  举报