[IMP] hw_escpos: codepage switch sequence for all encodings supported by the TM-T20 printer
bzr revid: fva@openerp.com-20140124173119-naktj3usjuapb9sf
This commit is contained in:
parent
c1ef35931a
commit
ee3fa52bbe
|
@ -49,19 +49,23 @@ class EscposDriver(hw_proxy.Proxy):
|
|||
|
||||
@http.route('/hw_proxy/open_cashbox', type='json', auth='admin')
|
||||
def open_cashbox(self):
|
||||
print 'ESC/POS: OPEN CASHBOX'
|
||||
_logger.info('ESC/POS: OPEN CASHBOX')
|
||||
eprint = self.get_escpos_printer()
|
||||
if eprint != None:
|
||||
eprint.cashdraw(2)
|
||||
eprint.cashdraw(5)
|
||||
else:
|
||||
_logger.error('ESC/POS: OPEN CASHBOX: could not find printer')
|
||||
|
||||
@http.route('/hw_proxy/print_receipt', type='json', auth='admin')
|
||||
def print_receipt(self, receipt):
|
||||
print 'ESC/POS: PRINT RECEIPT'
|
||||
_logger.info('ESC/POS: PRINT RECEIPT')
|
||||
eprint = self.get_escpos_printer()
|
||||
if eprint != None:
|
||||
self.print_receipt_body(eprint,receipt)
|
||||
eprint.cut()
|
||||
else:
|
||||
_logger.error('ESC/POS: PRINT RECEIPT: could not find printer')
|
||||
|
||||
def print_receipt_body(self,eprint,receipt):
|
||||
|
||||
|
|
|
@ -44,10 +44,42 @@ TXT_ENC_PC865 = '\x1b\x74\x05' # PC865 Nordic
|
|||
TXT_ENC_KANJI6 = '\x1b\x74\x06' # One-pass Kanji, Hiragana
|
||||
TXT_ENC_KANJI7 = '\x1b\x74\x07' # One-pass Kanji
|
||||
TXT_ENC_KANJI8 = '\x1b\x74\x08' # One-pass Kanji
|
||||
TXT_ENC_PC851 = '\x1b\x74\x0b' # PC851 Greek
|
||||
TXT_ENC_PC853 = '\x1b\x74\x0c' # PC853 Turkish
|
||||
TXT_ENC_PC857 = '\x1b\x74\x0d' # PC857 Turkish
|
||||
TXT_ENC_PC737 = '\x1b\x74\x0e' # PC737 Greek
|
||||
TXT_ENC_8859_7 = '\x1b\x74\x0f' # ISO8859-7 Greek
|
||||
TXT_ENC_WPC1252 = '\x1b\x74\x10' # WPC1252
|
||||
TXT_ENC_PC866 = '\x1b\x74\x11' # PC866 Cyrillic #2
|
||||
TXT_ENC_PC852 = '\x1b\x74\x12' # PC852 Latin2
|
||||
TXT_ENC_PC858 = '\x1b\x74\x13' # PC858 Euro
|
||||
TXT_ENC_KU42 = '\x1b\x74\x14' # KU42 Thai
|
||||
TXT_ENC_TIS11 = '\x1b\x74\x15' # TIS11 Thai
|
||||
TXT_ENC_TIS18 = '\x1b\x74\x1a' # TIS18 Thai
|
||||
TXT_ENC_TCVN3 = '\x1b\x74\x1e' # TCVN3 Vietnamese
|
||||
TXT_ENC_TCVN3B = '\x1b\x74\x1f' # TCVN3 Vietnamese
|
||||
TXT_ENC_PC720 = '\x1b\x74\x20' # PC720 Arabic
|
||||
TXT_ENC_WPC775 = '\x1b\x74\x21' # WPC775 Baltic Rim
|
||||
TXT_ENC_PC855 = '\x1b\x74\x22' # PC855 Cyrillic
|
||||
TXT_ENC_PC861 = '\x1b\x74\x23' # PC861 Icelandic
|
||||
TXT_ENC_PC862 = '\x1b\x74\x24' # PC862 Hebrew
|
||||
TXT_ENC_PC864 = '\x1b\x74\x25' # PC864 Arabic
|
||||
TXT_ENC_PC869 = '\x1b\x74\x26' # PC869 Greek
|
||||
TXT_ENC_8859_2 = '\x1b\x74\x27' # ISO8859-2 Latin2
|
||||
TXT_ENC_8859_9 = '\x1b\x74\x28' # ISO8859-2 Latin9
|
||||
TXT_ENC_PC1098 = '\x1b\x74\x29' # PC1098 Farsi
|
||||
TXT_ENC_PC1118 = '\x1b\x74\x2a' # PC1118 Lithuanian
|
||||
TXT_ENC_PC1119 = '\x1b\x74\x2b' # PC1119 Lithuanian
|
||||
TXT_ENC_PC1125 = '\x1b\x74\x2c' # PC1125 Ukrainian
|
||||
TXT_ENC_WPC1250 = '\x1b\x74\x2d' # WPC1250 Latin2
|
||||
TXT_ENC_WPC1251 = '\x1b\x74\x2e' # WPC1251 Cyrillic
|
||||
TXT_ENC_WPC1253 = '\x1b\x74\x2f' # WPC1253 Greek
|
||||
TXT_ENC_WPC1254 = '\x1b\x74\x30' # WPC1254 Turkish
|
||||
TXT_ENC_WPC1255 = '\x1b\x74\x31' # WPC1255 Hebrew
|
||||
TXT_ENC_WPC1256 = '\x1b\x74\x32' # WPC1256 Arabic
|
||||
TXT_ENC_WPC1257 = '\x1b\x74\x33' # WPC1257 Baltic Rim
|
||||
TXT_ENC_WPC1258 = '\x1b\x74\x34' # WPC1258 Vietnamese
|
||||
TXT_ENC_KZ1048 = '\x1b\x74\x35' # KZ-1048 Kazakhstan
|
||||
|
||||
TXT_ENC_KATAKANA_MAP = {
|
||||
# Maps UTF-8 Katakana symbols to KATAKANA Page Codes
|
||||
|
|
|
@ -207,16 +207,28 @@ class Escpos:
|
|||
encoded = ''
|
||||
encoding = self.encoding # we reuse the last encoding to prevent code page switches at every character
|
||||
encodings = {
|
||||
# TODO use ordering to prevent useless switches
|
||||
# TODO Support other encodings not natively supported by python ( Thai, Khazakh, Kanjis )
|
||||
'cp437': TXT_ENC_PC437,
|
||||
'cp850': TXT_ENC_PC850,
|
||||
'cp852': TXT_ENC_PC852,
|
||||
'cp857': TXT_ENC_PC857,
|
||||
'cp858': TXT_ENC_PC858,
|
||||
'cp865': TXT_ENC_PC860,
|
||||
'cp860': TXT_ENC_PC860,
|
||||
'cp863': TXT_ENC_PC863,
|
||||
'cp865': TXT_ENC_PC865,
|
||||
'cp866': TXT_ENC_PC866,
|
||||
'cp862': TXT_ENC_PC862,
|
||||
'cp720': TXT_ENC_PC720,
|
||||
'iso8859_2': TXT_ENC_8859_2,
|
||||
'iso8859_7': TXT_ENC_8859_7,
|
||||
'iso8859_9': TXT_ENC_8859_9,
|
||||
'cp1254' : TXT_ENC_WPC1254,
|
||||
'cp1255' : TXT_ENC_WPC1255,
|
||||
'cp1256' : TXT_ENC_WPC1256,
|
||||
'cp1257' : TXT_ENC_WPC1257,
|
||||
'cp1258' : TXT_ENC_WPC1258,
|
||||
'katakana' : TXT_ENC_KATAKANA,
|
||||
# TODO Support other encodings not natively supported by python
|
||||
}
|
||||
remaining = copy.copy(encodings)
|
||||
|
||||
|
|
Loading…
Reference in New Issue