很抱歉,如果这个问题被视为我之前提出的问题,那么...... 我正在尝试使用ESCPOS命令发送打印机来写入图像行,然后是剪切纸(部分剪切)命令,结果我收到图像行丢失(此时我尝试了两个不同的打印机,一个其中随机跳过图像线,另一个静态地跳过图像线。
整个图像打印场景取自new-grumpy-mentat, 稍加改动:
for (int y = 0; y < image.length; y += 24) {
//This part
if (n == 2) {
bos.write(printerSchema.getCutPaper());
}
// END
bos.write(printerSchema.getImageMode());
// Set nL and nH based on the width of the image
bos.write(new byte[] { (byte) (0x00ff & image[y].length), (byte) ((0xff00 & image[y].length) >> 8) });
for (int x = 0; x < image[y].length; x++) {
// for each stripe, recollect 3 bytes (3 bytes = 24 bits)
bos.write(recollectSlice(y, x, image));
}
// Do a line feed, if not the printing will resume on the same
// line
bos.write(printerSchema.getLineFeed());
n++;
}
我认为在剪切操作可能继续之前必须有一个类似于绘制图像线的终结操作,但是无法找到任何内容。 命令:
IMAGE_MODE = new byte[] { 0x1B, 0x2A, 33 },
LINE_FEED = new byte[] { 0x0A },
LINE_SPACE_24 = new byte[] { 0x1B, 0x33, 24 },
LINE_SPACE_30 = new byte[] { 0x1B, 0x33, 30 },
CUT_PAPER = new byte[] { 29, 86, 1 };