मैं पीसी में जुड़े प्रिंटर की गणना कर रहा हूं। मैंने इसे सी # System.Printing
नामस्थान का उपयोग करके किया। यह अच्छी तरह से काम करता है। लेकिन ज्यादातर यह सॉफ्टवेयर प्रिंटर जैसे माइक्रोसॉफ्ट एक्सपीएस दस्तावेज़ लेखक, माइक्रोसॉफ्ट फैक्स आदि दिखाता है। मैं जानना चाहता हूं कि इन सॉफ़्टवेयर प्रिंटर को गणना से हटा देना संभव है। मैंने जो कोड किया है वह नीचे दिखाया गया है:मूल प्रिंटर को पहचानें
PrintQueue printQueue = null;
LocalPrintServer localPrintServer = new LocalPrintServer();
// Retrieving collection of local printer on user machine
PrintQueueCollection localPrinterCollection =
localPrintServer.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local,
EnumeratedPrintQueueTypes.Connections });
System.Collections.IEnumerator localPrinterEnumerator =
localPrinterCollection.GetEnumerator();
while (localPrinterEnumerator.MoveNext())
{
// Get PrintQueue from first available printer
printQueue = (PrintQueue)localPrinterEnumerator.Current;
if (!printQueue.IsOffline)
{
MessageBox.Show(printQueue.FullName.ToString());
string s = "Printer found " + printQueue.FullName.ToString();
listBox1.Items.Add(s);
}
else
{
// No printer exist, return null PrintTicket
// return null;
}
}
बहुत मजेदार बात यह है कि मैं नेटवर्क प्रिंटर का उपयोग कर रहा हूं :) – Zigma
मैंने पिछले कुछ दिनों में यह बहुत सोचा है, और मुझे लगता है कि मुझे विंडोज प्रिंटिंग उपप्रणाली के साथ-साथ पता है माइक्रोसॉफ्ट के बाहर कोई भी, और ... अच्छा, मुझे डर है कि मुझे नहीं लगता कि सभी मामलों में हार्डवेयर और वर्चुअल प्रिंटर के बीच भरोसेमंद अंतर करने का एक तरीका है। मैं आपको "आमतौर पर सही" समाधान दे सकता हूं, लेकिन मुझे नहीं लगता कि "हमेशा सही" समाधान संभव है। माफ़ कीजिये। :-( –