2009-12-21 11 views
6

पर सरलीकृत चीनी वर्णों को प्रिंट करना मैं सी # में माइक्रोसॉफ्ट प्वाइंट ऑफ सर्विस एसडीके का उपयोग करके एक ईपीएस टीएम-टी 88IV एम (समांतर बंदरगाह) पर चीनी अक्षरों को मुद्रित करने की कोशिश कर रहा हूं। हालांकि, वे प्रिंटर पर प्रश्न चिह्न के रूप में दिखाई देते हैं।ईपीएसॉन टीएम-टी 88IVM

मेरे PosPrinter निम्नलिखित मान्य CharacterSetList है (?): 255,437,850,852,858,860,863,865,866,936,998,999,1252

और निम्नलिखित CapCharacterSet: कांजी

कोड पृष्ठ 1252 डिफ़ॉल्ट खिड़कियों कोड पेज है। 936 सरलीकृत चीनी के लिए कोड पेज है। इस मामले में, मैं कोड पेज 936 का उपयोग कर रहा हूं लेकिन प्रिंटर पर चीनी वर्ण प्रदर्शित करने में कभी सक्षम नहीं हूं।

उदाहरण:

string str = "重新开始"; 
// open device as variable _ReceiptPrinter, claim it, mark it as enabled 
_ReceiptPrinter.CharacterSet = 936; 
_ReceiptPrinter.PrintNormal(PrinterStation.Receipt, str); 

इस के साथ प्रतिस्थापित सभी चीनी अक्षरों के साथ पाठ बाहर प्रिंट?।

मुझे यकीन नहीं है कि मुझे प्रिंटिंग (ईएससी आर 15?) से पहले अतिरिक्त एस्केप कोड निर्दिष्ट करने की आवश्यकता है या यदि मेरा प्रिंटर ईपीएस ओपोस (v2.50e) में गलत कॉन्फ़िगर किया गया है। मैंने कई चीजों की कोशिश की, लेकिन कुछ भी काम नहीं किया है। कोई विचार या कोड उदाहरण?

नोट: अपने स्वयं परीक्षण में, प्रिंटर चीनी वर्ण मुद्रित करता है।

+0

आपके उदाहरण में 'अक्षरसेट' क्या है? इसके अलावा, कांजी! = सरलीकृत चीनी। –

+0

charset == 936 (सरलीकृत चीनी के लिए कोड पेज); कांजी CapCharSet enum मान है। मैं यूनिकोड की उम्मीद कर रहा था, लेकिन माना जाता है कि इप्सन इसे बेहतर विकल्प की कमी के लिए कांजी के रूप में परिभाषित करता है (और मुझे नहीं लगता कि यह प्रिंटर सभी यूनिकोड का समर्थन करता है, केवल सरलीकृत चीनी के लिए विशिष्ट सबसेट) \t सार्वजनिक enum कैरेक्टरसेट क्षमता \t { \t \t संख्यात्मक = 0, \t \t अल्फा = 1, \t \t काना = 10, \t \t कांजी = 11, \t \t यूनिकोड = 997, \t \t Ascii = 998, \t \t विंडोज = 999, \t \t Ansi = 999, \t} –

उत्तर

2

द एपसन टीएम-टी 88IV बहुभाषी के लिए आवश्यक है कि आप स्ट्रिंग को कोडपेज 936 में परिवर्तित करें और उसके बाद आईएसओ -885 9 -1 में उस स्ट्रिंग का प्रतिनिधित्व करें।

एल्गोरिथ्म पर जानकारी के लिए इस अन्य प्रश्न देखें:

Can we simplify this string encoding code

प्रिंटर को भेजने से पहले यह करते हैं। str = एन्कोडिंग। गेट एन्कोडिंग ("आईएसओ -885 9 -1")। GetString (एन्कोडिंग। गेट एन्कोडिंग (_ReceiptPrinter.CharacterSet) .GetBytes (str));