我在VB.NET中使用WebBrowser控件并调用Print()方法。我使用PDF打印机进行打印,当打印()被调用时,它不会立即启动(它会一直等到它已经完成整个Sub或块的运行代码)WebBrowser.Print()等待直到完成。 .NET
我需要确保文件打印太完整,并继续处理这个文件,因此,我想打印的需求,并获得一些什么时候操作完成状态。我已尝试使用printDocument,并没有运气的过程。
任何有什么想法?
我在VB.NET中使用WebBrowser控件并调用Print()方法。我使用PDF打印机进行打印,当打印()被调用时,它不会立即启动(它会一直等到它已经完成整个Sub或块的运行代码)WebBrowser.Print()等待直到完成。 .NET
我需要确保文件打印太完整,并继续处理这个文件,因此,我想打印的需求,并获得一些什么时候操作完成状态。我已尝试使用printDocument,并没有运气的过程。
任何有什么想法?
查看底层非托管WebBrowser对象的PrintTemplateTeardown
事件。有时该事件被多次触发,但希望这会指出您在r ight方向。您需要添加对Microsoft Internet Controls
的引用。
Private Sub Print()
AddHandler DirectCast(WebBrowser1.ActiveXInstance, SHDocVw.WebBrowser).PrintTemplateTeardown, AddressOf PrintDone
WebBrowser1.Print()
End Sub
Private Sub PrintDone(ByVal obj As Object)
Trace.WriteLine("printed")
RemoveHandler DirectCast(WebBrowser1.ActiveXInstance, SHDocVw.WebBrowser).PrintTemplateTeardown, AddressOf PrintDone
End Sub
最好的办法是让你的 'printjobscollection' 一个手柄默认打印机,并确保jobcount = 0
这样在vb.net:
Dim intprint As Integer = Nothing
retry2:
intprint = GetPrintJobsCollection(printerinuse)
If Not intprint = 0 Then
System.Threading.Thread.Sleep(1000)
GoTo retry2
End If
'do what you want to do after print completes here