我在使用 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];
遵循此处的 ESCPOS 命令规范 https://aures-support.com/DATA/drivers/Imprimantes/Commande%20ESCPOS.pdf 第 15 页:
你提到的密度字节是文档中m的值。可用的 m 值为:0、1、32、33,它控制垂直和水平的密度。
库简单地设置 0 或 33,因为它是两个方向上密度的最小值和最大值。