Невозможно распечатать форматированный текст с помощью принтера Bluetooth - PullRequest
0 голосов
/ 04 июня 2019

Я могу печатать текст, арабские символы, но я не могу напечатать форматированный текст, такой как выравнивание по центру, жирный текст и т. Д.

Я использую этот плагин для печати данных https://github.com/don/BluetoothSerial

ниже приведены команды для выравнивания по центру и полужирного текста.

TXT_ALIGN_CT: '\x1b\x61\x01', // Centering

TXT_BOLD_ON: '\x1b\x45\x01';

с приведенными ниже шагами: 1.использование нижеследующей функции для преобразования строки в байт

private getPrintData(TEXT: string) {

// based on http://ciaranj.blogspot.fr/2007/11/utf8-characters-encoding-in-javascript.html

var bytes = [];

for (var n = 0; n < TEXT.length; n++) {

  var c = TEXT.charCodeAt(n);

  if (c < 128) {

    bytes[bytes.length] = c;

  } else if ((c > 127) && (c < 2048)) {

    bytes[bytes.length] = (c >> 6) | 192;
    bytes[bytes.length] = (c & 63) | 128;

  } else {

    bytes[bytes.length] = (c >> 12) | 224;
    bytes[bytes.length] = ((c >> 6) & 63) | 128;
    bytes[bytes.length] = (c & 63) | 128;

  }

}

return bytes;
  }

const printData = this.getPrintData(getPrintData('你好'));

 this.printer.printData(printData ).then((success) => {});

работает нормально.

2.попробуйте передать команды ESC / POS в виде шестнадцатеричного кода, как показано ниже.

   const data = new Uint8Array([0x2fa00bf0e86c440658a6a71]);
   this.printer.printData(data);

в нем не отображается жирный текст,

Может кто-нибудь, пожалуйста, помогите мне ??

1 Ответ

0 голосов
/ 20 июня 2019

некоторые принтеры не поддерживают команды ESC / POS, которые мы должны использовать для разрешения нативных sdks, я решил, создав собственный плагин cordova

...