2010-06-29 21 views
5

मैं .net का उपयोग कर किसी चयनित प्रिंटर में पीडीएफ, शब्द, एक्सेल या टेक्स्ट फ़ाइलों जैसे किसी दस्तावेज़ को मुद्रित करना चाहता हूं। मुझे डिफ़ॉल्ट प्रिंटर में ऐसी प्रिंटिंग करने में सफलता मिली है। अब एकमात्र मुद्दा चयनित प्रिंटर में प्रिंट करना है।किसी चयनित दस्तावेज़ में किसी भी दस्तावेज़ को मुद्रित करने के लिए कैसे करें

यहां प्रिंटिंग के लिए कोड है।

public bool Print(string FilePath) 
    { 
     if (File.Exists(FilePath)) { 
      if (ShellExecute((System.IntPtr)1, "Print", FilePath, "", Directory.GetDirectoryRoot(FilePath), SW_SHOWNORMAL).ToInt32() <= 32) { 
       return false; 
      } else { 
       return true; 
      } 
     } else { 
      return false; 
     } 
    } 

उत्तर

0

डिफ़ॉल्ट प्रिंटर में सफलता के साथ आप किस फ़ाइल प्रारूप का परीक्षण कर रहे हैं?

प्रिंटर को "कोई भी" दस्तावेज़ भेजने के लिए संभव नहीं है, आम तौर पर विशिष्ट फ़ाइल प्रारूप को उस एप्लिकेशन द्वारा व्याख्याित करने की आवश्यकता होती है जो फ़ाइल प्रारूप को पढ़ सकता है, फिर उसे प्रिंटर या फ़ाइल में प्रस्तुत किया जा सकता है जिसे द्वारा व्याख्या किया जा सकता है प्रिन्टर।

ज्यादातर मामलों में यदि आप पोस्टस्क्रिप्ट या पीडीएफ में प्रस्तुत कर सकते हैं तो आप इसे एक व्याख्याकर्ता का उपयोग करके प्रिंट कर सकते हैं।

+0

मैं PDFword और एक्सेल files.You के साथ परीक्षण कर रहा हूँ सही किसी भी फ़ाइल मुद्रित नहीं किया जा सकता है, लेकिन अगर उस फ़ाइल का सॉफ्टवेयर स्थापित किया गया है यह निर्दिष्ट करने के किस प्रकार की फ़ाइल यह is.It द्वारा नियंत्रित किया जाता बिना मुद्रित किया जा सकता केवल खिड़कियां – Thunder

+0

फ़ाइल को प्रिंट करने की समस्या प्रश्न में दिखाए गए अनुसार हल हो चुकी है। केवल प्रिंटर निर्दिष्ट करने की समस्या शेष है। – Thunder

+0

हाय, ठीक है, एक विशिष्ट प्रिंटर को निर्दिष्ट करने का तरीका नहीं है, लेकिन प्रिंटिंग से पहले डिफ़ॉल्ट प्रिंटर को बदलने का तरीका जांचना उचित होगा? –

8
Process printJob = new Process(); 
printJob.StartInfo.FileName = path; 
printJob.StartInfo.UseShellExecute = true; 
printJob.StartInfo.Verb = "printto"; 
printJob.StartInfo.CreateNoWindow = true; 
printJob.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
printJob.StartInfo.Arguments = "\"" + printerAddress + "\"" + " " + printerExtraParameters; 
printJob.StartInfo.WorkingDirectory = Path.GetDirectoryName(path); 
printJob.Start(); 
+0

स्वरूपित है कि आपके लिए कोड के रूप में। फ़ॉर्मेट करने के लिए टेक्स्ट का चयन करके और प्रविष्टि विंडो के ऊपर "101010 .." बटन दबाकर जवाब देकर आप ऐसा ही कर सकते हैं। कोड को इस तरह आसान बनाता है (पढ़ें: संभव) देखने के लिए। :) –

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

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