2013-04-08 22 views
8

पर प्रिंटर स्वचालित रूप से सेट करें, मैं उपयोगकर्ता को संकेत दिए बिना किसी विशेष प्रिंटर पर एक WPF FlowDocument मुद्रित करने का प्रयास कर रहा हूं। प्रिंटर एक पीडीएफ कनवर्टर है।WPF प्रिंटिंग - WPF PrintDialog

इस को छोड़कर यह डिफ़ॉल्ट प्रिंटर के लिए प्रिंट कि महान काम करता है:

PrintDialog pd = new PrintDialog(); 
    var doc = ((IDocumentPaginatorSource) RTB.Document).DocumentPaginator; 
    // I would like to explicitly set the printer to print to here. 
    pd.PrintDocument(doc, "Print Document"); 

WinForms में वहाँ है एक System.Drawing.Printing.PrinterSettings दस्तावेज़ पर आपत्ति है जो एक PrinterName संपत्ति जो प्रिंटर से सेट किया जा सकता है मैं चाहता हूं, लेकिन मुझे यह नहीं लगता कि डब्ल्यूपीएफ में।

उत्तर

15

आपको पहले अपनी परियोजना में System.Printing पर एक संदर्भ की आवश्यकता है। फिर आप PrintDialog ऑब्जेक्ट घोषित करने के बाद निम्न कोड का उपयोग कर सकते हैं।

pd.PrintQueue = new PrintQueue(new PrintServer(), "The exact name of my printer"); 

PrintQueue एक वस्तु है कि प्रिंटर और कहा कि प्रिंट कतार के बारे में सब कुछ का प्रतिनिधित्व करता है।

+0

शानदार! मैंने पूरे दिन बिताया और इसे समझ नहीं पाया। सहायता के लिए धन्यवाद। – BrokeMyLegBiking

+1

जिस तरह से आप \\ servername \ printername – Praveena

+0

@Praveena जैसे नेटवर्क प्रिंटर को निर्दिष्ट करते हैं, मुझे यकीन नहीं है कि नेटवर्क प्रिंटर के लिए सटीक वाक्यविन्यास क्या है। मैं हमेशा प्रिंट संवाद बॉक्स से स्ट्रिंग को पकड़ता हूं और इसका उपयोग करता हूं। – Stewbob

2

यह मेरे लिए काम किया, जब मैं एक साझा नेटवर्क प्रिंटर का इस्तेमाल:

xPrintDialog.PrintQueue = New PrintQueue(New PrintServer("\\computer name"), "printer name")