小票打印乱码:先把字符编码对上
小票一出全是“□”“???”,大概率是编码不一致。商家助手、打印插件、打印机驱动三者只要有一个用错编码,就会乱码。
- 把打印内容编码统一成UTF-8:后台/打印组件里有“字符集/编码”就选UTF-8;如果看到GBK/GB2312选项,和模板里用的编码要一致。
- 检查打印机指令模式:热敏小票常用ESC/POS。驱动里如果切到“图形模式/位图模式”,中文可能正常但速度变慢;切回ESC/POS又乱码,通常就是编码没配对。
- 用一张测试单定位问题:只打印“测试中文ABC123¥”。中文乱码但英文正常,基本就是编码;中英都乱,更多是驱动或端口异常。
排版错位:纸宽、每行字符数要匹配
明明模板没改,标题跑到下一行、金额挤在一起,这种更像纸宽设置不对。
- 确认纸宽:常见是58mm和80mm。58mm通常每行约32字节(跟字体有关),80mm常见约48字节。
- 驱动里纸张宽度别用A4:到打印机属性里把介质/纸张改成“Receipt 58mm/80mm”或自定义宽度(例如58mm=580单位、80mm=800单位,具体看驱动单位)。
- 边距别太大:左边距从0-2mm试起。很多错位其实是左边距设了10mm,整张单都被挤变形。
举个常见案例:用80mm机子却在模板里选了58mm,商品名会频繁换行,合计金额会顶到右侧看不全。
模板校准:用“标尺思维”把每一项对齐
模板看起来对,打印出来还是飘,按这个思路校准会快很多:
- 固定字体与字号:别混用宋体/黑体/等宽字体。小票更推荐等宽字体,数字对齐更稳。
- 用分栏宽度而不是空格硬凑:比如“品名/数量/单价/小计”四列,给每列设定字符宽度;空格在不同字体下宽度不一致,很容易漂。
- 加一条“对齐辅助线”测试:临时打印一行“1234567890…”到右侧边界,看看是否刚好贴边,用它反推每行可用字符数。
- 缩放保持100%:浏览器打印或云打印里出现“适应纸张/缩放90%”,就会整体错位,尽量锁定100%。
可执行建议(今天就能排查完)
建议你在2026年3月15日这次排查按这个顺序做:打印测试单→确认纸宽58/80→驱动纸张改成小票规格→编码统一UTF-8→模板改等宽字体并用分栏宽度。每改一项就打印一张留样,对比变化,10分钟内基本能锁定问题点。