взял код отсюда http://www.mets-blog.com/java-pos-thermal-printer-example/
там смущает вот эта строка
bytes = text.getBytes("CP437");
в других кодировках крякозябры в общем как заставить печатать кириллицу?
Наверное все носители тайного знания как заставить печатать туповатый принтер кириллицу просто тупо вымерли и я остался один. А ведь были золотые времена в святые 90-е это была вообще золотая тема :)
В принтере в евонной памяти содержится некая таблица, в которую загружены шрифты и где напротив байта - стоит его буквенное изображение. Когда принтеру приходит команда печатать байт, он берет байт с ним идет в таблицу извлекает оттуда символ и посылает сигнал своим головкам изобразить символ. Соответственно, задача прогера состоит в том, чтобы шрифты загруженные в память принтера получали правильные байты (кодировка) или же если нет шрифтов загрузить таковые в принтер. Обычно это задача драйвера - драйвер берет на себя эту непосильную задачу.
Соответственно, задача распадается в нашем случае на 2 части:
В общем давайте модель принтера - оттуда и будем плясать.
Update
В мануале расписаны ESC коды управления принтером. По идее, это все должен делать драйвер, но можно и самому.
Вам надо сначала перед печатью выставить кодовую страницу, что достигается следующей ESC последовательностью:
ESC t n
По простому надо в порт принтера записать три байта:
0x1B 0x74 0x11 //байты приведены в HEX
После чего надо посылать ваш текст, но уже в кодировке KOI-8
Рекомендуется перед этим проинициализировать принтер посылкой команды
ESC @
Кодировка CP437 не содержит кирилицы. Если у вас символы кирилицы закодированны например в русскую кодировку CP1251 или КОИ-8, то на выходе у вас получится набор байт, который нельзя показать ввиду сказанного выше. Поэтому вам скорее всего надо декодировать в другую кодировку, содержащую кирилицу. Но возможен вариант трансфера где декодированные байты можно обратно закодировать с помощью того же CP437 и в результате у вас получится строка в прежней кодировке.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Мне нужен способ чтение и записи в файл с использованием указателяТо есть что бы я мог поставить указатель на нужную мне позицию в файле и считать...
Я использую Java + Spring Boot, возникла необходимость добавить в файл applicationproperties поле - экземпляр какого-то своего типа (не String, не Integer, не
Это отлично работает с прямым url без порта на php, если я указываю ссылку без порта 3000