2010-03-18 24 views
5

VB.NET'te bir WebBrowser denetimi kullanıyorum ve Print() yöntemini çağırarak. Bir PDF yazıcısı kullanarak baskı yapıyorum ve Print() çağrıldığında hemen başlatılmadığında (tüm Sub veya blok için kod çalıştırma tamamlanana kadar bekler.WebBrowser.Print() tamamlanana kadar bekleyin. .NET

Dosyanın doğru olduğundan emin olmamız gerekir. Ayrıca yazdırma işlemi tamamlandı ve bu dosya ile devam etmeye devam ediyorum, bu nedenle, talep üzerine baskı yapmak ve işlemin ne zaman tamamlandığını öğrenmek istiyorum.Ticari baskıyı denedim. Döküm ve süreç şanssız.

Herhangi bir fikri olan var mı?

cevap

5

Temeldeki yönetilmeyen WebBrowser nesnesinin PrintTemplateTeardown olayına göz atın Bazen bu olay birden çok kez tetiklenir ancak umarım bu durum size yön Microsoft Internet Controls'a bir başvuru eklemeniz gerekir.

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

En uygun seçenek varsayılan yazıcı için senin 'printjobscollection' ele almak ve sağlamak olduğunu jobcount = vb.net böyle 0

:

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 
İlgili konular