@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):
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
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)