2012-05-09 18 views
12

मेरे पास सिल्वरलाइट 5 ओओबी एप्लीकेशन (उन्नत अनुमतियों के साथ) है जो अभी हमारे कई उपयोगकर्ताओं को तैनात किया गया है। इनमें से कुछ उपयोगकर्ता रिपोर्ट कर रहे हैं कि प्रिंट खाली या बहुत बेहोश हो रहे हैं। ये प्रिंटर Word दस्तावेज़ों को सही तरीके से प्रिंट करते हैं और मैं अपने स्वयं के प्रिंटर पर समस्या को पुन: उत्पन्न करने में असमर्थ हूं।सिल्वरलाइट 5 कुछ प्रिंटर पर प्रिंट नहीं कर रहा है

सभी उपयोगकर्ता Windows XP SP3 32 बिट पर हैं, और मैं Win7 64 बिट पर विकास कर रहा हूं।

जैसा कि किसी ने इस मुद्दे को पहले देखा था? या कोई विचार यह क्या हो सकता है?

बहुत सराहना की सहायता करें।

कई धन्यवाद, एंड्रयू

+0

आपका रिपोर्टिंग इंजन क्या है? क्या कोई तीसरी पार्टी टेलीरिक, देवर्ट इत्यादि है। पूर्वावलोकन पर क्या यह ठीक है? हम सामना करना पड़ा, लेकिन आपके शेयर के लिए धन्यवाद। –

+0

मुद्रित पृष्ठ में मानक नियंत्रण हैं। हमें विश्वास है कि यह एक प्रिंटर ड्राइवर मुद्दा है। –

+1

तो जब आप एक्सपीएस प्रिंटर, या वर्चुअल पीडीएफ प्रिंटर पर प्रिंट करते हैं तो क्या होगा। अगर वे ठीक हैं, तो यह ड्राइवर समस्या हो सकती है। –

उत्तर

1

मैं चाहिए मिल गया समाधान आप के लिए उपयोगी हो सकते हैं ............................

सबसे पहले मैंने एक नया प्रिंट डॉक्यूमेंट बनाया, और प्रिंटपेज ईवेंट के लिए कुछ हैंडलर लगाए।

mobjPrintDocument = New PrintDocument 
RemoveHandler mobjPrintDocument.PrintPage, AddressOf Print_Report 
AddHandler mobjPrintDocument.PrintPage, AddressOf Print_Report 

फिर जब भी आप मुद्रित करना चाहते हैं तो हम प्रिंटबिटमैप फ़ंक्शन को प्रिंट डॉक्यूमेंट पर कॉल कर सकते हैं। यहां मैं यह कर रहा हूं जब उपयोगकर्ता प्रिंट बटन पर क्लिक करता है।

Private Sub xbtnPrint_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) 
    mintPageIndex = 0 
    mobjPrintDocument.PrintBitmap(FileName) 
    End Sub 

अब महत्वपूर्ण हिस्सा आता है। हम प्रिंटपेज ईवेंट (जैसे ऊपर संभाले गए) में हुक करके लक्षित सामग्री को हाइजैक कर सकते हैं। मैं e.PageVisual को किसी भी दृश्य xaml तत्व पर सेट कर सकता हूं और PrintBitmap इसे संभाल लेगा। यहां मैं यह सुनिश्चित करने के लिए GetPages फ़ंक्शन और लूप का उपयोग करता हूं कि मैं प्रत्येक पृष्ठ (एक पीडीएफवीयर तत्व) मुद्रित करता हूं। हालांकि, आप इसे किसी भी दृश्य तत्व को इंगित कर सकते हैं जैसे मैंने कहा।

Private Sub Print_Report(sender As System.Object, e As PrintPageEventArgs) 
    e.PageVisual = xobjReportViewer.GetPages(mintPageIndex) 
    mintPageIndex += 1 
    e.HasMorePages = mintPageIndex < xobjReportViewer.GetPages.Count 
    End Sub 

e.HasMorePages जब तक आप समाप्त कर लें तो आप इस घटना की फायरिंग के लिए मजबूर करने की अनुमति देता है।

आशा है कि यह किसी के लिए सहायक होगा। सिल्वरलाइट 5 और पोस्ट-स्क्रिप्ट प्रिंटर समर्थन के साथ, पोस्टस्क्रिप्ट एमुलेटर वाले प्रिंटर के बहुत से अनुकूल नहीं हो सकते हैं, लेकिन बिटमैप प्रिंटिंग के लिए भी डिफ़ॉल्ट नहीं होंगे। यह कामकाज ठीक करता है कि, LOB प्रकार के अनुप्रयोग में थोड़ा और अधिक स्थिर मुद्रण करना।

संबंधित मुद्दे