如何与ESC/POS划线



我需要使用ESC/POS命令绘制一条水平线(实线,虚线将是完美的!)到我的收据。

现在我正在使用一些hack,允许我通过使用"下划线"命令和一些空格字符来绘制一条水平线,但我不喜欢它,因为我需要给这条线一些绘画属性,如"高度":

PRINT #1, CHR$(&H1B);"-";CHR$(1); <==== set underline on
PRINT #1, "            "; CHR$(&HA);
PRINT #1, CHR$(&H1B);"-";CHR$(0); <==== set underline off

我相信它可以发生与位图像命令,但我不知道如何做到这一点。

Thanks in advance

一个老问题,但我最近也在纠结。

大多数收据打印机仍然有旧的代码页,如PC850, PC858, PC1119等。这些页面中的大多数都有旧的DOS框字符(如╚ ╬ ┬ ┐)。

我发现打印一行最简单的方法是使用character(196)并重复n times以得到─────

在这种老式的方法中,你还可以打印盒子等

使用mike42的escposs -php:

$printer->textRaw(str_repeat(chr(196), 40).PHP_EOL);

另一种打印特殊图形的方法是使用位图像命令0x1B 0x2A(ESC *)然后设置整个页面的位数,然后生成一个8位高× xx字节宽的像素图。8位由MSB(上)到LSB(下)表示,因此一条实的8像素高线是0xFF。我经常使用数据字节0x80来绘制1像素的线,或者使用0x01来将线放在底部。另外,您可以参考这篇文章:http://nicholas.piasecki.name/blog/2009/12/sending-a-bit-image-to-an-epson-tm-t88iii-receipt-printer-using-c-and-escpos/获得乐趣。

您必须进入页面模式,并将字符间距设置为0 +使用小字体大小和可能的粗体样式,以便下划线之间没有更多的空间。要设置线条高度,唯一的解决方案是画几条堆叠在一起的线条。这在页面模式下是可能的,因为你可以使用打印区域(ESC W)将数据放置在任何你想要的地方。

另一个可能的技巧是使用徽标来绘制线条(仍然在页面模式下)

相关内容

  • 没有找到相关文章

最新更新