2010-03-18 20 views
5

Estoy usando un control WebBrowser en VB.NET y llamando al método Print(). Estoy imprimiendo usando una impresora PDF y cuando se llama a Print() no se inicia inmediatamente (espera hasta que haya completado el código de ejecución para todo el Sub o bloque.WebBrowser.Print() espera hasta que se complete. .NET

Necesito asegurarme de que el archivo sea la impresión también se completó y continuará el proceso con este archivo, por lo tanto, me gustaría imprimir a pedido y obtener un estado de cuándo se completa la operación. He intentado imprimir e imprimirDocument y procesar sin suerte.

¿Alguien tiene alguna idea?

Respuesta

5

Echa un vistazo al evento PrintTemplateTeardown del objeto WebBrowser no gestionado subyacente. A veces ese evento se dispara varias veces pero con suerte esto te indicará en el r buena dirección Debe agregar una referencia al 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 
1

Su mejor apuesta es conseguir una manija en su 'printjobscollection' para su impresora por defecto y asegurar que el jobcount = 0

como este en 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 
Cuestiones relacionadas