如何使用 esc pos 知道打印中的密度字节?

问题描述 投票:0回答:1

我在使用 xt423 打印机打印后遇到与图像质量相关的问题。 我在 esc_pos_utils 库中学习了以下内容。并且对于 DensityByte 的计算方式存在一个困惑:为什么它只有 0 或 33。

有相关文档对此进行解释吗?

帮助我。

   final int heightPx = imageRotated.height;

    int densityByte =
        (highDensityHorizontal ? 1 : 0) + (highDensityVertical ? 32 : 0);

    final List<int> header = List.from(cBitImg.codeUnits);
    header.add(densityByte);
    header.addAll(_intLowHigh(heightPx, 4));

    // Adjust line spacing (for 16-unit line feeds): ESC 3 0x10 (HEX: 0x1b 0x33 0x10)
    bytes += [27, 51, 0];
    for (int i = 0; i < blobs.length; ++i) {
      bytes += List.from(header)
        ..addAll(blobs[i])
        ..addAll('\n'.codeUnits);
    }
    // Reset line spacing: ESC 2 (HEX: 0x1b 0x32)
    bytes += [27, 50];
flutter
1个回答
0
投票

遵循此处的 ESCPOS 命令规范 https://aures-support.com/DATA/drivers/Imprimantes/Commande%20ESCPOS.pdf 第 15 页: ESC Image command

你提到的密度字节是文档中m的值。可用的 m 值为:0、1、32、33,它控制垂直和水平的密度。

库简单地设置 0 或 33,因为它是两个方向上密度的最小值和最大值。

© www.soinside.com 2019 - 2024. All rights reserved.