Я недостаточно хорошо знаю C #, чтобы комментировать код в вашем вопросе, но абсолютно возможно напечатать символ ³
в ESC / POS, отправив "\x1B\x74\x02\xFC"
.
Вот изображение квитанции от Epson TM-T20:
Я напечатал это, используя библиотеку PHP , которая понимает, как конвертировать UTF-8 в доступные кодовые страницы принтеров ESC / POS. Подобная библиотека существует для python , и вам было бы неплохо использовать эквивалент C #, если он существует!
<?php
require __DIR__ . '/vendor/autoload.php';
use Mike42\Escpos\Printer;
use Mike42\Escpos\PrintConnectors\FilePrintConnector;
use Mike42\Escpos\CapabilityProfile;
$connector = new FilePrintConnector("php://stdout");
$profile = CapabilityProfile::load("default");
$printer = new Printer($connector, $profile);
$printer -> text("2.43 m³\n");
$printer -> cut();
$printer -> close();
Это соответствует следующему hexdump.
$ php superscript-demo.php | hexdump -C
00000000 1b 40 32 2e 34 33 20 6d 1b 74 02 fc 0a 1d 56 41 |.@2.43 m.t....VA|
00000010 03 |.|
00000011
Все команды здесь:
ESC @
- вернуть настройки форматирования и кодировки символов к значениям по умолчанию.
ESC t 2
- выберите кодовую страницу 2.
LF
- разрыв строки
ESC V 65 3
- команда обрезки
Волшебство здесь ESC t 2
. Кодовая страница с номером 2 на принтерах Epson - это устаревшая кодовая страница 850 на принтерах Epson . Другие поставщики могут отличаться, но руководство для вашего принтера также показывает CP850 в том же положении.
Ваша кодовая страница по умолчанию (CP437) не содержит требуемого символа, в то время как на кодовой странице 850 ³
представлен 0xFC
. После изменения кодовых страниц изменение будет активным, пока вы не перезагрузите принтер или не выполните команду ESC @
.
.
Чтобы сэкономить время на поиск специальных символов по отдельности, вы можете выбрать кодовую страницу, которая содержит все, что вы планируете использовать, а затем опираться на стандартную библиотеку языка программирования для кодирования строк с этой кодовой страницей.