2017-05-25 23 views
8

मेरे पास एक विकल्प है कि उपयोगकर्ता प्रिंट विकल्प का चयन कर सकता है जहां यह PrintDialog लाता है जहां उपयोगकर्ता पहले से परिभाषित प्रिंटर प्रोफ़ाइल का चयन कर सकता है।चयनित प्रिंटर प्रोफाइल/पेज आकार के साथ फ़ाइल प्रिंट करें

इस प्रिंटर के लिए डिफ़ॉल्ट पेपर आकार ए 4 है लेकिन इस प्रोफाइल का चयन करने से यह ए 5 में बदल जाता है।

मैं नीचे दिए गए कोड का उपयोग कर रहा हूं जो प्रिंटर को सही करने के लिए प्रिंट कार्य भेजता है लेकिन सही कागज़ आकार नहीं लेता है क्योंकि यह हमेशा ए 4 में प्रिंट करता है। क्या मुझे यहां कुछ याद आ रही है या क्या इसे हासिल करने का वैकल्पिक तरीका है?

using (var pd = new PrintDialog()) 
{ 
    if (pd.ShowDialog() == DialogResult.OK) 
     { 
     var info = new ProcessStartInfo(filepath) 
        { 
         Arguments = "\"" + pd.PrinterSettings + "\"", 
         CreateNoWindow = true, 
         WindowStyle = ProcessWindowStyle.Hidden, 
         UseShellExecute = true, 
         Verb = "Print" 
        }; 
     Process.Start(info); 
     } 
    } 
+3

यह जरूरत से ज्यादा संभावना नहीं है कि जो कुछ भी कार्यक्रम * filepath * उन तर्क आप पारित सराहना करने के लिए जा रहा है के साथ जुड़ा हुआ है। आम तौर पर कोई भी प्रोग्राम जो प्रिंट क्रिया लागू करता है, केवल अपने आप को तय करता है कि किस पेपर का उपयोग करना है। नियंत्रण कक्ष में कॉन्फ़िगर किए गए लगभग हमेशा डिफ़ॉल्ट चयन। –

+0

यह एक प्रिंट ड्राइवर के डिफ़ॉल्ट कॉन्फ़िगरेशन विकल्प संवाद की तरह संदिग्ध रूप से दिखता है, लेकिन आप इसे एक अलग प्रक्रिया के रूप में खोलने लगते हैं। क्या आप एक प्रोग्राम बनाने की कोशिश कर रहे हैं जो डिफ़ॉल्ट प्रिंटर सेटिंग्स को बदलता है? दूसरे शब्दों में, मैं इस बारे में बहुत उलझन में हूं कि आप वास्तव में क्या करने की कोशिश कर रहे हैं। एस होली का जवाब वास्तव में आपके ऐप के भीतर से एक पृष्ठ मुद्रित करने का सामान्य तरीका दिखाता है। मेरा मानना ​​है कि इसे प्रिंट सेटिंग्स को समायोजित करने की अनुमति देने के लिए प्रिंटडिअलॉग के साथ संयोजन के रूप में उपयोग किया जा सकता है। टीएलडीआर: कृपया बताएं कि आप वास्तव में क्या करने की कोशिश कर रहे हैं। – ashbygeek

उत्तर

0

आप निम्नलिखित है, जो System.Drawing.Printing से PrintDocument पर निर्भर करता है की तरह page settings कोड का उपयोग कर निर्दिष्ट करने के लिए सक्षम होना चाहिए। यदि आवश्यक हो, तो आप भी PrintDocument वर्ग का उपयोग कर PrintPage घटना के लिए एक ईवेंट हैंडलर को परिभाषित कर सकते हैं:

PrintDocument pd = new PrintDocument(); 
//pd.PrintPage += new PrintPageEventHandler(handlePagePrint); 
pd.PrinterSettings.PrinterName = "Printer name goes here"; 
// select the appropriate item from the PaperSizes collection 
pd.DefaultPageSettings.PaperSize = pd.PrinterSettings.PaperSizes[0]; 

if (pd.PrinterSettings.IsValid) 
{ 
    pd.Print(); 
} 
+0

यह दिखाने के लिए शायद अच्छा होगा कि यह प्रिंटर सेटिंग्स संवाद के साथ कैसे जुड़ता है। – ashbygeek

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