7,763
社区成员
发帖
与我相关
我的任务
分享
Form1.WebBrowser.Navigate2 "e:\test.html"
Form1.WebBrowser.ExecWB 6, 2, Empty, Empty
Private Sub PrintHtmlToTIF(wb As WebBrowser, fileName As String)
Dim sTmpPath As String
Dim sTmpFile As String
Dim sDefaultPath As String
' Office 打印机配置路径
Const def_OfficePrinter_Cfg_Path As String = "Software\Microsoft\Office\11.0\MODI\MDI writer"
' 默认输出路径配置项名称
Const def_DefaultFolder_Cfg_Name As String = "DefaultFolder"
' 从注册表中读出打印机的默认输出目录
sDefaultPath = Registry.ReadString(HKEY_CURRENT_USER, def_OfficePrinter_Cfg_Path, def_DefaultFolder_Cfg_Name)
' 生成一临时目录用来存放打印输出
sTmpPath = App.Path & "\tmp" & Format$(Now(), "yyyymmddhhmmss")
MkDir sTmpPath
' 使用临时目录作为打印输出
Registry.WriteString HKEY_CURRENT_USER, def_OfficePrinter_Cfg_Path, def_DefaultFolder_Cfg_Name, sTmpPath
' 开始打印
wb.ExecWB OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, 2
' 恢复默认设置
Registry.WriteString HKEY_CURRENT_USER, def_OfficePrinter_Cfg_Path, def_DefaultFolder_Cfg_Name, sDefaultPath
' 在临时目录中查找文件
sTmpFile = Dir(sTmpFile & "\*.*")
If Len(sTmpFile) = 0 Then ' 找不到文件则认为打印失败
Err.Raise vbObjectError, , "Print html failed"
Else
' 拷贝到指定路径
FileCopy sTmpPath & "\" & sTmpFile, fileName
End If
' 删除临时目录
Kill sTmpPath & "\*.*"
RmDir sTmpPath
End Sub
' Test
Private Sub Command1_Click()
PrintHtmlToTIF WebBrowser1, "c:\testhtml.tif"
End Sub