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

Java实现ESC/POS指令打印图片如何适配纸张宽度居中满幅打印

ESC/POS 安卓端图片全宽居中打印调整方案

第一步:预先适配图片到打印纸宽度

首先确认你使用的打印纸对应的可打印像素宽度,常见规格:

  • 58mm 热敏纸:通用可打印宽度为 384 像素
  • 80mm 热敏纸:通用可打印宽度为 576 像素

在调用getPixelsSlow方法处理图片之前,先对原始Bitmap做等比缩放,代码示例如下:

// original 为原始待打印Bitmap,targetPrintWidth 填对应纸张的可打印宽度
private Bitmap scaleBitmapToFitPaper(Bitmap original, int targetPrintWidth) {
    float scaleRatio = (float) targetPrintWidth / original.getWidth();
    int scaledHeight = Math.round(original.getHeight() * scaleRatio);
    return Bitmap.createScaledBitmap(original, targetPrintWidth, scaledHeight, true);
}

处理后的Bitmap再传入getPixelsSlow方法生成打印用的像素数据即可。

第二步:发送居中对齐打印指令

在发送图片打印数据流之前,先向打印机发送ESC/POS居中对齐指令:
new byte[]{0x1B, 0x61, 0x01}

图片打印完成后,可发送左对齐指令复位打印格式,避免后续内容继承居中属性:
new byte[]{0x1B, 0x61, 0x00}


注意事项

  • 部分品牌打印机可打印宽度和通用规格有差异,可以先打印全宽测试条确认实际最大像素值,再填入缩放参数
  • 不需要图片抗锯齿的场景下,可将createScaledBitmap最后一个参数改为false,提升打印速度

内容的提问来源于stack exchange,提问作者Malindu Gimhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:06:03