JavaScript 中使用 ESC/POS 的 EAN-13 没有显示下面的数字?
EAN-13 in JavaScript using ESC/POS is not showing the digits below?
我正在尝试使用 ESC/POS 命令将 JavaScript 应用程序中的 EAN-13 条码打印到热敏打印机 GS k m d1...dk NUL
。
根据应用程序规范,所有命令都必须通过仅使用 HEX 的蓝牙插件传送。
目前,我可以打印条码,但它不显示下面的数字,而且所有条码线的高度都相同。我的印象是 EAN-13 将数字分成 3 个部分,中间有不同高度的线。
样本条码:
6921426623090
命令:
0x1D,0x77,3,0x1D,0x68,160,0x1D,0x6B,2,0x36,0x39,0x30,0x31,0x30,0x32,0x38,0x30,0x37,0x35,0x38,0x33,0x31,00,0x0a,0x0a
命令解释:
0x1D,0x77,3, // barcode width
0x1D,0x68,160, // barcode height
0x1D,0x6B,2,0x36,0x39,0x30,0x31,0x30,0x32,0x38,0x30,0x37,0x35,0x38,0x33,0x31,00, // ean-13 barcode: GS k m d1...dkNUL
0x0a,0x0a // space after
我非常有信心它与我的实施有关 GSkmd1...dkNUL
:
GS // 0x01D
k // 0x6B
m // 2
d1...dk // barcode translated to hex: 0x36,0x39,0x30,0x31,0x30,0x32,0x38,0x30,0x37,0x35,0x38,0x33,0x31
NUL // 00
当前打印输出:
所需的打印输出:
对于如何根据提供的图像打印条形码的任何反馈,我将不胜感激 - 下面的数字和中间不同高度的线条。
事实证明,使用 ESC/POS
的 print barcode
命令无法打印 (non-flat) 个 EAN-13 条形码。唯一的选择是通过 ESC/POS
.
的 print image
命令打印 non-flat EAN-13 的图像
这些字符称为 HRI(人类可读解释)。
条码为not-flat表示HRI叠加在条码上打印。
如果是这样,用Bitmap创建一个图像并打印它会有效。
除此之外,我没试过,不知道可不可以,但可以想象使用页面模式打印如下。
- 进入页面模式
- 指定打印范围
- 打印条码
- 调整打印开始位置
- 用空白位图覆盖部分打印条码
- 调整打印开始位置
- 在空白区域打印条码字符串
- 打印页面模式缓冲区并退出页面模式
但是你真的需要 non-flat 条形码来打印这样的布局吗?
如果不需要使用non-flat条码,您可以通过以下方法同时打印条码和条码字符串。
GS H n : Select HRI 字符打印位置
如果在条形码下方打印字符,则 n 为 0x02 或 0x32。
0x1D 0x48 0x02 或 0x32
GS f n : Select HRI 字符字体
当您要更改条形码打印字符的字体时指定此项。
n 的值会因打印机而异。
0x1D 0x66 0x00-0x04 或 0x30-0x34 或 0x61-0x62
我正在尝试使用 ESC/POS 命令将 JavaScript 应用程序中的 EAN-13 条码打印到热敏打印机 GS k m d1...dk NUL
。
根据应用程序规范,所有命令都必须通过仅使用 HEX 的蓝牙插件传送。
目前,我可以打印条码,但它不显示下面的数字,而且所有条码线的高度都相同。我的印象是 EAN-13 将数字分成 3 个部分,中间有不同高度的线。
样本条码: 6921426623090
命令:
0x1D,0x77,3,0x1D,0x68,160,0x1D,0x6B,2,0x36,0x39,0x30,0x31,0x30,0x32,0x38,0x30,0x37,0x35,0x38,0x33,0x31,00,0x0a,0x0a
命令解释:
0x1D,0x77,3, // barcode width
0x1D,0x68,160, // barcode height
0x1D,0x6B,2,0x36,0x39,0x30,0x31,0x30,0x32,0x38,0x30,0x37,0x35,0x38,0x33,0x31,00, // ean-13 barcode: GS k m d1...dkNUL
0x0a,0x0a // space after
我非常有信心它与我的实施有关 GSkmd1...dkNUL
:
GS // 0x01D
k // 0x6B
m // 2
d1...dk // barcode translated to hex: 0x36,0x39,0x30,0x31,0x30,0x32,0x38,0x30,0x37,0x35,0x38,0x33,0x31
NUL // 00
当前打印输出:
所需的打印输出:
对于如何根据提供的图像打印条形码的任何反馈,我将不胜感激 - 下面的数字和中间不同高度的线条。
事实证明,使用 ESC/POS
的 print barcode
命令无法打印 (non-flat) 个 EAN-13 条形码。唯一的选择是通过 ESC/POS
.
print image
命令打印 non-flat EAN-13 的图像
这些字符称为 HRI(人类可读解释)。
条码为not-flat表示HRI叠加在条码上打印。
如果是这样,用Bitmap创建一个图像并打印它会有效。
除此之外,我没试过,不知道可不可以,但可以想象使用页面模式打印如下。
- 进入页面模式
- 指定打印范围
- 打印条码
- 调整打印开始位置
- 用空白位图覆盖部分打印条码
- 调整打印开始位置
- 在空白区域打印条码字符串
- 打印页面模式缓冲区并退出页面模式
但是你真的需要 non-flat 条形码来打印这样的布局吗?
如果不需要使用non-flat条码,您可以通过以下方法同时打印条码和条码字符串。
GS H n : Select HRI 字符打印位置
如果在条形码下方打印字符,则 n 为 0x02 或 0x32。
0x1D 0x48 0x02 或 0x32
GS f n : Select HRI 字符字体
当您要更改条形码打印字符的字体时指定此项。
n 的值会因打印机而异。
0x1D 0x66 0x00-0x04 或 0x30-0x34 或 0x61-0x62