WebBrowser.Print () attendere fino al completamento. .NETTO

Sto usando un controllo WebBrowser in VB.NET e chiamando il metodo Print (). Sto stampando usando una stampante PDF e quando viene chiamato Print () non viene immediatamente avviato (attende fino a quando non ha completato il codice in esecuzione per l’intero Sub o blocco.

Ho bisogno di assicurarmi che il file che sto stampando sia completo e continui il processo con questo file, quindi, vorrei stampare su richiesta e ottenere lo stato di quando l’operazione è completa. Ho provato a usare printDocument e processare senza fortuna.

Qualcuno ha qualche idea?

Controlla l’evento PrintTemplateTeardown dell’object WebBrowser non gestito sottostante. A volte quell’evento viene licenziato più volte, ma spero che questo ti indichi la giusta direzione. È necessario aggiungere un riferimento a 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 

La soluzione migliore è quella di ottenere una gestione del tuo “printjobscollection” per la stampante predefinita e assicurare che il jobcount sia pari a 0

come questo in 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