我需要使用ESC / POS命令在我的收据上绘制一条水平线(实线一条,但虚线完美!)。
现在我正在使用一些hack,允许我通过使用带有一些空格字符的“UnderLine”命令绘制水平线,但我不喜欢它,因为我需要给线条一些绘图属性,如“高度” “:
PRINT #1, CHR$(&H1B);"-";CHR$(1); <==== set underline on
PRINT #1, " "; CHR$(&HA);
PRINT #1, CHR$(&H1B);"-";CHR$(0); <==== set underline off
我相信可能会发生位图命令,但我不知道该怎么做。
提前致谢
答案 0 :(得分:0)
打印特殊图形的另一种方法是使用位图命令0x1B 0x2A (ESC *)然后设置页面上的位数,然后通过xx字节宽像素映射生成8位高。 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/ 玩得开心。
答案 1 :(得分:0)
一个老问题,但最近我也为此感到困惑。
大多数收据打印机仍具有旧的代码页,例如PC850,PC858,PC1119等。并且大多数页面具有旧的DOS框字符(例如╚ ╬ ┬ ┐
)。
打印行的最简单方法是使用character(196)
并重复n times
以获得─────
。
以这种老式的方式,您还可以打印盒子等。
答案 2 :(得分:-2)
您必须进入页面模式,并将字符间距设置为0 +使用较小的字体大小和可能是粗体样式,以便下划线之间不再有空格。要设置线高,唯一的解决方案是绘制几条堆叠在一起的线。这可以在页面模式下进行,因为您可以使用打印区域(ESC W)将数据放在任何位置。
另一个可能的技巧是使用徽标绘制线条(仍处于页面模式)