Турецкий символ с библиотекой ESCPOS не работает

Я пытаюсь использовать эту библиотеку: https://github.com/song940/node-escpos для печати текста с AURES ODP444

Это нормально работает, но когда я пытаюсь напечатать турецкий символ, как показано ниже, у меня появляется неправильный символ на бумаге.

Ç Ğ I İ Ö Ş Ü ü ş ö i ı ğ ç Â â î Î Û û

Я пытаюсь кодировать с помощью latin5 / ISO-8859-9, но тоже не работает ..

const escpos = require('escpos')
escpos.SerialPort = require('escpos-serialport')
const options = { encoding: "iso-8859-9" }
const device = new escpos.SerialPort('COM4')
const printer = new escpos.Printer(device, options)

device.open((error) => {
printer.font('a')
.size(0.75,0.75)
.text("Marvın")
.feed()
.close()
})

В результате получается Marv²n.

Кто-нибудь может мне помочь? Спасибо.


person Marvin Dahlen    schedule 16.09.2020    source источник
comment
Попробуйте использовать такие инструменты, как режим шестнадцатеричного дампа принтера / линейный монитор / анализатор протокола, чтобы проверить содержимое данных, отправляемых на принтер.   -  person kunif    schedule 17.09.2020
comment
Как я могу увидеть, что отправлено на принтер?   -  person Marvin Dahlen    schedule 17.09.2020
comment
Проще всего, если вы можете видеть команды печати, даже если вы переводите принтер в режим шестнадцатеричного дампа. Однако это часто не работает, и это зависит от способа подключения вашего принтера. Сетевой монитор, такой как сниффер, можно рассматривать, если он подключен через Ethernet, монитор последовательной линии, если подключен через последовательный порт DSUB9, или анализатор протокола USB, если подключен через USB.   -  person kunif    schedule 17.09.2020
comment
В моем случае принтер подключен к последовательному порту, поэтому я могу использовать подобное программное обеспечение virtual-serial-port.org/fr/articles/how-to-monitor-serial-port?   -  person Marvin Dahlen    schedule 17.09.2020
comment
Аппаратные продукты, скорее всего, будут менее сложными в установке и настройке, но программное обеспечение должно подойти для коммерческих продуктов.   -  person kunif    schedule 17.09.2020


Ответы (1)


Для тех, кто хочет получить ответ (для ODP333 / ODP444)

Если вы хотите изменить кодировку, загрузите служебное программное обеспечение с веб-сайта поддержки, подключитесь к принтеру и измените кодовую страницу (для турецкого языка это cp857) и не забудьте в своем коде кодировать в cp857.

const options = { encoding: "cp857" }

http://aures-support.com/DATA/Doc/PRINTER/CONFIGURATION-MANUALTHERMAL-PRINTER_AURES.pdf

Спасибо всем за вашу помощь!

person Marvin Dahlen    schedule 17.09.2020