我需要将收据发送到热敏票据打印机。我在指定[https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=34]]中指定字符大小时遇到问题。在Python中,我将此命令编写为
#ESC @ for initiate the printer
string = b'\x1b\x40'
#GS ! command in the doc corresponding to 4 times character height and width
string = string + b'\x1d' + b'\x21' + b'\x30' + b'\x03'
string = string + bytes('hello world')
在第一行中,我启动了与ESC @相对应的打印机在第二行中,我想将字符大小指定为高度和宽度的4倍(请参阅文档链接)。在第三行中,我打印出文本。
问题是,打印出的文本具有4倍的宽度,但没有4倍的高度。我也试图将字符大小写为两个命令
string = string + b'\x1d' + b'\x21' + b'\x30'
string = string + b'\x1d' + b'\x21' + b'\x03'
在这种情况下,我的文本以4倍高而不是4倍宽打印出来。我很确定我读错了文档,但是我不知道我应该怎么写命令才能同时达到4倍的高度和宽度。
对于GS也存在examples! escpos中的语法,它似乎写成GS! 0x11可以实现宽度和高度的2倍。从表中看来这似乎没有意义。我知道python-escpos存在,但是在Windows 10上对于我的USB打印机不起作用。
所以问题似乎在于您将宽度和高度分为两个字节。应该将它们收集到一个字节中。