我在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