mirror of
https://github.com/python-escpos/python-escpos
synced 2025-09-13 09:09:58 +00:00
Port to current version of escpos-printer-db.
This commit is contained in:
32
src/escpos/codepages.py
Normal file
32
src/escpos/codepages.py
Normal file
@@ -0,0 +1,32 @@
|
||||
from .capabilities import CAPABILITIES
|
||||
|
||||
|
||||
class CodePageManager:
|
||||
"""Holds information about all the code pages (as defined
|
||||
in escpos-printer-db).
|
||||
"""
|
||||
|
||||
def __init__(self, data):
|
||||
self.data = data
|
||||
|
||||
def get_all(self):
|
||||
return self.data.values()
|
||||
|
||||
def encode(self, text, encoding, errors='strict'):
|
||||
"""Adds support for Japanese to the builtin str.encode().
|
||||
|
||||
TODO: Add support for custom code page data from
|
||||
escpos-printer-db.
|
||||
"""
|
||||
# Python has not have this builtin?
|
||||
if encoding.upper() == 'KATAKANA':
|
||||
return encode_katakana(text)
|
||||
|
||||
return text.encode(encoding, errors=errors)
|
||||
|
||||
def get_encoding(self, encoding):
|
||||
# resolve the encoding alias
|
||||
return encoding.lower()
|
||||
|
||||
|
||||
CodePages = CodePageManager(CAPABILITIES['encodings'])
|
Reference in New Issue
Block a user