2010-03-18 19 views
5

मैं वीबीएनईटी में वेबब्रोसर नियंत्रण का उपयोग कर रहा हूं और प्रिंट() विधि को कॉल कर रहा हूं। मैं एक पीडीएफ प्रिंटर का उपयोग कर प्रिंटिंग कर रहा हूं और जब प्रिंट() को कॉल किया जाता है तो इसे तत्काल बंद नहीं किया जाता है (यह तब तक इंतजार करता है जब तक कि वह पूरे उप या ब्लॉक के लिए चलने वाला कोड पूरा नहीं कर लेता है।WebBrowser.Print() पूर्ण होने तक प्रतीक्षा करें। .NET

मुझे यह सुनिश्चित करने की ज़रूरत है कि मैं फ़ाइल प्रिंटिंग भी पूर्ण हो गई है और इस फाइल के साथ प्रक्रिया जारी है, इसलिए, मैं मांग पर प्रिंट करना चाहता हूं और ऑपरेशन पूरा होने पर कुछ स्थिति प्राप्त करना चाहता हूं। मैंने प्रिंट डॉक्यूमेंट और बिना किस्मत के प्रक्रिया की प्रक्रिया की कोशिश की है।

किसी के पास कोई विचार है?

उत्तर

5

अंतर्निहित अप्रबंधित WebBrowser ऑब्जेक्ट की PrintTemplateTeardown ईवेंट देखें। कभी-कभी उस ईवेंट को कई बार निकाल दिया जाता है लेकिन उम्मीद है कि यह आपको आर में इंगित करेगा दृष्टि दिशा आपको 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

आपका सबसे अच्छा शर्त अपने डिफ़ॉल्ट प्रिंटर के लिए अपने '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 
संबंधित मुद्दे