Я пытаюсь распечатать китайские символы на Epson TM-T88IV M (параллельный порт) с помощью Microsoft Point of Service SDK в C#. Однако они появляются как метки вопросов на принтере. (?)
Мой PosPrinter имеет следующий допустимый CharacterSetList: 255,437,850,852,858,860,863,865,866,936,998,999,1252
И следующий CapCharacterSet: Кандзи
Кодовая страница 1252 является кодовой страницей окон по умолчанию. 936 кодовая страница для упрощенного китайского. В этом случае я использую кодовую страницу 936, но никогда не мог отобразить китайские символы на принтере.
Пример:
string str = "重新开始";
// open device as variable _ReceiptPrinter, claim it, mark it as enabled
_ReceiptPrinter.CharacterSet = 936;
_ReceiptPrinter.PrintNormal(PrinterStation.Receipt, str);
Это распечатывает текст со всеми китайскими символами, замененными?.
Я не уверен, должен ли я указать дополнительные управляющие коды прежде, чем распечатать (ESC R 15?) или если мой принтер неправильно конфигурируется в Epson OPOS (v2.50e). Я попробовал много вещей, но ничто не работало. Какие-либо идеи или примеры кода?
Примечание: в сам тест, принтер действительно печатает китайские символы.
Многоязычный Epson TM-T88IV требует, чтобы вы преобразовали строку в CodePage 936, а затем представили эту строку в ISO-8859-1.
См. другой вопрос для получения более подробной информации об алгоритме:
Можем ли мы упростить код кодирования этой строки
перед отправкой на принтер. str = Encoding.GetEncoding("ISO-8859-1").GetString(Encoding.GetEncoding(_ReceiptPrinter.CharacterSet).GetBytes(str));
.