首页 > 解决方案 > ESC/POS打印条码在中间纵横对齐?

问题描述

我的代码目前正在轻松打印条形码和 hri 文本,但我希望所有内容都打印在标签的中心位置。有人可以告诉我什么时候应该声明对齐命令吗?
我尝试在开始时和条形码打印命令之前声明它,但条形码仍在左上角打印。
这是我的对齐命令:

    def align_esc(self,esc,n):
        '''
        ESC|a|n
        0<=n<=2,48<=n<=50
        0,48 = Left; 1,49 = Mid; 2,50 = Right
        '''
        align = [esc,n]
        align_prnt = bytearray(align)
        return align

我不使用 escpos python 库的原因是因为我正在从 Android 设备打印。
编辑:
上述函数在第 7 行缺少以下字符:

align = [esc,97,n]

标签: python-3.xprintingthermal-printerescpos

解决方案


在 EPSON 的ESC 一条命令说明中,有如下注释。
这些通知是否在ESC a您的打印机命令中?

  • 选择标准模式时,仅在标准模式下在行首处理时才启用此命令。
  • 对齐在页面模式下无效。
  • GS L此命令在和设置的打印区域中执行对齐GS W
  • 该命令对打印数据(如字符、所有图形、条码、二维码)和 HT 设置的空间区域进行对齐ESC $, 和ESC \
  • 该命令的设置在ESC @执行、打印机复位或电源关闭之前有效。

通常,ESC a命令不是在行首之后指定,而是在打印几个字符或空格之后指定。

例如,如果您使用纯文本而不是条形码打印并且它没有居中,ESC a则不在行首指定。
更改ESC a命令,使其在行首指定。

但是,如果纯文本居中打印,则该功能可能不适用于条形码。
在这种情况下,请联系打印机供应商以确定条形码对齐是否可用以及如何进行。
或者没有自动功能,可能是用ESC \等调整打印位置的方法。


水平方向的打印位置可以通过ESC $或指定ESC \
只是计算的起点不同。ESC $是纸张的左边缘,ESC \是当时的打印位置。
您将不需要使用GS P.


推荐阅读