Проблема выравнивания чеков печати EPSON - PullRequest
1 голос
/ 31 марта 2020

Я хочу добиться правильного выравнивания для своей квитанции, в настоящее время я могу получить выравнивание, как на картинке в настоящее время получаю квитанцию, подобную этой

Чтобы добиться правильного выравнивания, я попробовал два способа, В одной строке я попытался упомянуть как выравнивание по левому краю, так и выравнивание по правому краю, что не сработало, так как epson не разрешает выравнивание по одной и той же строке. Затем я попытался добавить пробел между ca sh и количеством, но иногда из-за более длинное описание, сумма может go дальше вправо, поэтому она не стабильна, поэтому кто-то может сказать мне правильный подход для достижения правильного выравнивания

self.receiptText += alignLeft + tndrDesc + "\n";
self.receiptText += alignRight + formatTdrAmt + "\n";

, но приведенный выше код дает описание в одну строку над сумма, но если я не буду использовать \ n, он будет отображаться в той же строке без выравнивания вправо

1 Ответ

1 голос
/ 01 апреля 2020

Лучше редактировать строку символов запроса на печать самим приложением, а не функцией принтера.

Например, предположим, что вы хотите напечатать 32 столбца.

  • Применить padEnd (32, '') к строке имени элемента.
  • Получает длину строки цены.
  • Извлекает строку из строки имени элемента с подстрокой (0, (32 - длина строки цены)) .
  • Объедините извлеченную строку символов и строку символов цены с помощью concat () или + , а затем объедините код новой строки, чтобы создать строку символов для одной строки.

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


С учетом добавленного источника.

В этом случае alignLeft и alignRight не требуются.

И вместо внезапного добавления к self.receiptText используйте рабочие переменные.

Процесс будет следующим.

printlineWork = tndrDesc + '                                  '; // 34 columns space character
printlineWork = printlineWork.substring(0, 34);
printlineWork += ('        ' + formatTdrAmt).slice(-8) + '\n'; // 8 columns space character
self.receiptText += printlineWork;

Отрегулируйте положение di git по желанию.

...