收据打印与zpl斑马imz220 - android

时间:2015-12-22 10:24:33

标签: android zebra-printers

我正在从Android设备打印收据到zebra imz 220,收据的一部分包含一个文字大小以便于阅读的图钉,但此部分打印不正确,文本的一半丢失:

pin section 1

当我打印收据的引脚部分时,我设置标签长度并通过发送以下命令打印出所需的字段:

zebraPrinter.sendCommand("!U1 setvar \" zpl.label_length \" \" 50 \" \ n \ r");

        zebraPrinter.sendCommand(   "^XA^" +
                "FO0,0^FB384,1,0,C,0^ADI,18,10^FDData^FS^" +
                "XZ");

        zebraPrinter.sendCommand(   "^XA^" +
                "FO0,0^FB384,1,0,C,0^ADI,18,10^FD.............................^FS^" +
                "XZ");

        zebraPrinter.sendCommand(   "^XA^" +
                "FO0,0^FB384,1,0,C,0^ADI,18,10^FDData Token:^FS^" +
                "XZ");

        zebraPrinter.sendCommand(   "^XA^" +
                "FO0,0^FB384,1,0,C,0^ADI,18,10^FD(123,R123.23)^FS^" +
                "XZ");

        zebraPrinter.sendCommand(   "^XA^" +
                "FO0,0^FB384,2,0,C,0^ADI,36,20^FD"+pin+"^FS^" +
                "XZ");

        zebraPrinter.sendCommand(   "^XA^" +
                "FO0,0^FB384,1,0,C,0^ADI,18,10^FD123 @ 0.11c "+"^FS^" +
                "XZ");

        zebraPrinter.sendCommand(   "^XA^" +
                "FO0,0^FB384,1,0,C,0^ADI,18,10^FD..............................^FS^" +
                "XZ");

如果我将标签长度从50更改为75,那么整个引脚区域都可见,但此部分的间距变得不合需要:

pin section 2

当长度设置为50而不遮挡引脚区域时,如何保持引脚部分的间距?

非常感谢任何正确方向的指针!

1 个答案:

答案 0 :(得分:0)

看起来你正在使用ZPL。最好创建一个标签,而不是为收据的每一行发送新标签。您可以使用单个^ XA和^ XZ环绕整个标签。见下文。这样做的好处是可以手动设置每行文本的位置,从而增加'引脚的行高。线。此外,您只打开与打印机的通信一次,因此它应该(略微)执行。例如:

StringBuilder zplString = new StringBuilder();
zplString.append("^XA");
zplString.append("FO0,0^FB384,1,0,C,0^ADI,18,10^FDData^FS^"");
zplString.append("FO0,50^FB384,1,0,C,0^ADI,18,10^FD.............................^FS^");
zplString.append("FO0,100^FB384,1,0,C,0^ADI,18,10^FDData Token:^FS^");
zplString.append("FO0,150^FB384,1,0,C,0^ADI,18,10^FD(123,R123.23)^FS^");
zplString.append("FO0,200^FB384,2,0,C,0^ADI,36,20^FD"+pin+"^FS^");

// Notice we set starting position (FO) to 0,300.  This gives our previous line (the pin line) more room.
zplString.append("FO0,300^FB384,1,0,C,0^ADI,18,10^FD123 @ 0.11c "+"^FS^"); 
zplString.append("FO0,350^FB384,1,0,C,0^ADI,18,10^FD..............................^FS^");
zplString.append("^XZ");

// only send the command once since it includes the entire label
zebraPrinter.sendCommand(zplString.toString());

注意:如果采用这种方法,则必须计算每行文本的起始X,Y位置。这意味着您必须将每个开头FO0,0更改为FO00,FO0,50,FO0,100等。每个FO命令的第二个参数是起始' Y'那条线的位置。因此,您可以简单地将带有引脚的线后面的线增加到更高的值,以使文本不重叠。

相关问题