You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript在ESC/POS页模式下打印超125字符二维码异常问题

ESC/POS页模式打印长二维码卡顿乱码问题(Epson TM-T20X)

我用JavaScript在ESC/POS页模式下给Epson TM-T20X打印机打印二维码,内容少于125字符时正常,超过后打印机卡顿,多次打印测试页还会输出大量乱码。测试用的二维码字符串:
aaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaabbbbbbbbbbaaaaaaaaaa

原代码如下:

var inAux = QRcode.length + 3;
var pL = inAux%256
var pH = inAux/256
var size = 3;

impressao += Char(29)+Char(40)+Char(107)+Char(4)+Char(0)+Char(49)+Char(65)+Char(49)+Char(0); // 选择二维码模型(1)
impressao += Char(29)+Char(40)+Char(107)+Char(3)+Char(0)+Char(49)+Char(67)+Char(size); // 设置模块大小
impressao += Char(29)+Char(40)+Char(107)+Char(3)+Char(0)+Char(49)+Char(69)+Char(48); // 设置纠错等级(L)
impressao += Char(29)+Char(40)+Char(107)+Char(pL)+Char(pH)+Char(49)+Char(80)+Char(48); // 将数据存入符号存储区
impressao += QRcode;
impressao += Char(29) + Char(40) + Char(107) + Char(3) + Char(0) + Char(49) + Char(81) + Char(48); // 打印存储区中的符号数据
impressao += esc + Char(12); // 页模式打印(ESC FF)

问题原因与修复方法

  1. pH值计算错误:当前用普通除法pH = inAux/256会得到浮点数,但ESC/POS指令要求pH是整数(高8位字节),必须用整数除法取整。浮点数作为指令字节传递给打印机后,会导致指令解析失败,触发卡顿和乱码。
  2. 可选优化:页模式初始化:页模式下打印前建议先执行初始化指令,避免之前的缓存残留影响当前打印任务。

修复后的关键代码:

var inAux = QRcode.length + 3;
var pL = inAux % 256;
var pH = Math.floor(inAux / 256); // 改用整数除法取整,确保得到高8位的整数字节值
var size = 3;

// 打印前添加页模式初始化
impressao += Char(27) + Char(76); // ESC L:进入页模式

// 后续二维码配置与打印指令保持不变
impressao += Char(29)+Char(40)+Char(107)+Char(4)+Char(0)+Char(49)+Char(65)+Char(49)+Char(0);
impressao += Char(29)+Char(40)+Char(107)+Char(3)+Char(0)+Char(49)+Char(67)+Char(size);
impressao += Char(29)+Char(40)+Char(107)+Char(3)+Char(0)+Char(49)+Char(69)+Char(48);
impressao += Char(29)+Char(40)+Char(107)+Char(pL)+Char(pH)+Char(49)+Char(80)+Char(48);
impressao += QRcode;
impressao += Char(29) + Char(40) + Char(107) + Char(3) + Char(0) + Char(49) + Char(81) + Char(48);
impressao += esc + Char(12);

额外注意:如果二维码内容包含非ASCII字符,要先将字符串转成正确的字节流(比如UTF-8)后再计算长度,避免因字符编码导致的长度计算偏差。

内容的提问来源于stack exchange,提问作者julia marçal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 06:35:29