2012-08-31 13 views
7

मुझे एक WPF प्रोजेक्ट से प्रिंटिंग के साथ एक अजीब समस्या का सामना करना पड़ रहा है। मैं रिपोर्टिंग उद्देश्यों के लिए आवेदन की एक स्क्रीन कैप्चर प्रिंट कर रहा हूं, और यह सब ठीक काम करता है। वर्तमान में उपयोगकर्ता प्रिंट दबाता है, प्रिंट संवाद प्रकट होता है, और वे कैप्चर छवि प्रिंट करते हैं।शोडियलॉग के बिना प्रिंटिंग रिक्त पृष्ठ

हालांकि, मैं डायलॉग बॉक्स को दिखाए बिना सीधे डिफ़ॉल्ट प्रिंटर पर प्रिंट करने में सक्षम होना चाहता हूं। ShowDialog() कथन को टिप्पणी करके और शेष को बस होने की अनुमति देकर इसे आसानी से किया जाना चाहिए। प्रिंटर अभी भी प्रिंट करता है, लेकिन पेज हमेशा खाली होते हैं। क्या कोई इस व्यवहार को समझा सकता है?

private void PrintCurrentScreen() 
{ 
    PrintDialog PD = new PrintDialog(); 
    PD.PrintTicket.OutputColor = OutputColor.Grayscale; 
    PD.PrintTicket.OutputQuality = OutputQuality.Draft; 

    PrintTicket PT = new PrintTicket(); 
    PT.PageOrientation = PageOrientation.Landscape; 
    PT.CopyCount = 1; 
    PT.PageBorderless = System.Printing.PageBorderless.Borderless; 

    //---Blank pages print when commented out---// 
    //if (PD.ShowDialog() == true) 
    //{ 
    PD.PrintTicket = PT; 

    DrawingVisual DV = new DrawingVisual(); 
    DV.Offset = new Vector(20, 20); 
    DrawingContext DC = DV.RenderOpen(); 
    DC.DrawImage(previewimage.Source, new Rect(new Size(PD.PrintableAreaWidth - 40, PD.PrintableAreaHeight - 40))); 
    DC.Close(); 

    PD.PrintVisual(DV, "TEST"); 
    //} 
} 
+1

आप इस के लिए किसी भी समाधान मिला, मैं एक ही मुद्दा है, लेकिन समस्या यह है कि है विभिन्न ऑपरेटिंग सिस्टम के साथ कुछ पीसी के साथ हुआ - सभी नहीं - – safi

उत्तर

1

इस तरह एक उपाय कर रही है की कोशिश करें, व्यवस्थित करें, और UpdateLayout सही printvisual से पहले,:

DV.Measure(new System.Windows.Size(PD.PrintableAreaWidth, 
       PD.PrintableAreaHeight)); 
DV.Arrange(new System.Windows.Rect(new System.Windows.Point(0, 0), 
       DV.DesiredSize)); 

DV.UpdateLayout(); 
PD.PrintVisual(DV, "TEST"); 
+0

मैंने इस विधि को आजमाया और मैं अभी भी प्रिंटर से रिक्त पृष्ठों के साथ समाप्त हुआ। मैंने इस विधि को छोड़ दिया और इसके बजाय मेरे xaml तत्वों से दृश्यों को बनाया। मैंने इन नए तत्वों को मेरी रिपोर्ट पर रखा और यह ठीक से मुद्रित हुआ। पेज लेआउट के बाहरी नियंत्रण के अतिरिक्त लाभ भी थे। –