2012-07-10 16 views
5

मुझे सी # .NET में प्रिंटर को सामग्री भेजने की आवश्यकता है जैसे PRINT कमांड करता है।PRIPT कमांड की तुलना में नोटपैड हुड के नीचे अलग-अलग क्या करता है?

मेरे पास QLabel सॉफ़्टवेयर बंडल के साथ गोडेक्स थर्मल प्रिंटर है। अब इसमें लेबल को कमांड के रूप में सहेजने का विकल्प है जिसे आप कमांड प्रॉम्प्ट PRINT कमांड के साथ प्रिंटर पर भेज सकते हैं। फ़ाइल इस तरह दिखता है:

^Q80,3 
^W100 
^H10 
^P1 
^S3 
^AD 
^C1 
^R2 
~Q+0 
^O0 
^D0 
^E35 
~R200 
^L 
Dy2-me-dd 
Th:m:s 
AH,0,0,1,1,0,0,X 
AH,744,0,1,1,0,0,X 
AH,746,560,1,1,0,0,X 
AH,0,550,1,1,0,0,X 
AG,160,208,1,1,0,0, 
AA,234,283,1,1,0,0,Haloo 
E 

यही काम करता है जब मैं कुछ इस तरह करते हैं:

net use LPT2 \\localhost\godexUsbPrinter /yes 
print /D:LPT2 label.cmd 

और यह अच्छी तरह से मेरी लेबल बाहर प्रिंट करता है।

अब, अगर मैं इसे नोटपैड और प्रिंट में खोलता हूं, तो यह मुझे इस पाठ को प्रिंट करता है।

मुझे आश्चर्य है कि PRINT कमांड हुड के तहत क्या करता है और मैं व्यवहार को दोहराने के लिए अपने सी # आधारित प्रोग्राम को कैसे प्रोग्राम कर सकता हूं? क्योंकि जब मैं प्रिंटिंग तर्क लागू करता हूं, तो यह मुझे नोटपैड के रूप में सिर्फ सादा पाठ प्रिंट करता है।

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

+0

मुझे लगता है कि यह^क्यू और इस तरह के संबंधित नियंत्रण वर्णों में अनुवाद करता है –

+0

प्रिंट उस संबंध में हुड के नीचे कुछ भी नहीं करता है, यह अंतर है। नोटपैड फ़ाइल में आपके पास जो भी पात्र हैं, प्रदर्शित करने के लिए सबसे अच्छा प्रयास करता है लेकिन संभवतः प्रक्रिया में कुछ गैर-प्रिंट करने योग्य पात्रों को हटा देता है। –

उत्तर

4

ईमानदार होने के लिए, प्रश्न शीर्षक चारों ओर गलत तरीका है। PRINT बिल्कुल कुछ भी शानदार नहीं करता है, यह सिर्फ प्रिंटर पर अपने सभी इनपुट flushes। यह नोटपैड है कि, विंडोज़ प्रिंट सिस्टम के माध्यम से, पेजिंग और लाइन एंडिंग्स के लिए विभिन्न कमांड भेजता है और अंततः डेटा जिसे आप मुद्रित करना चाहते हैं। आपके द्वारा दिखाया गया कोड कच्चा प्रिंटर डेटा है, इसलिए आपको इसे 'कच्चा' भेजना होगा, न कि टेक्स्ट के रूप में। तो तकनीकी रूप से यह this question का डुप्लिकेट है।

ऐसा करने के लिए कैसे करें here समझाया गया है। यह पी/Invokes winspool.Drv पर उपयोग कर रहा है।

+0

स्पष्टीकरण के लिए धन्यवाद। यह काम। मुझे शायद प्रश्न शीर्षक बदलना चाहिए? –

+0

@ जेनिस वेनबर्ग्स मैंने इसे थोड़ा सा स्पष्ट करने की कोशिश की। :) – CodeCaster