gpt4 book ai didi

printing - ESC POS 命令 ESC* 用于在打印机上打印位图

转载 作者:行者123 更新时间:2023-12-01 08:23:44 74 4
gpt4 key购买 nike

我想用 ESC POS 命令 ESC* 打印位图标志文件。
以下是该命令的技术文档链接。

https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=88

据我所知,打印机需要1s和0s形式的图像数据。因此,它打印一个点,出现 1 和空白,出现 0。
但我无法弄清楚如何借助上述命令发送多行位图像数据,因为该命令仅接受水平方向的图像数据。请帮我解决这个问题。

最佳答案

ESC *是 ESC/POS 中的几个“位图”命令之一。它接受“列格式”数据,该数据只能表示 8 或 24 像素的单行。所以这里有两个不错的选择。

使用 ESC * 打印多行

听起来您可以打印一行,所以我假设数据格式本身不是问题。

您可以通过简单地重复打印多行的命令来打印多行,由换行符分隔 \n .这需要分割图像,并用空格填充它,使其高度为 8 或 24 像素的倍数(同样,由于格式)。

由于行间距,您需要在图像打印期间发出一个命令来更改换行符的大小,然后在结束时发出另一个命令来重置它们。

我用 ESC 3 0x10对于 16 个单位的换行符(字节 0x1b 0x33 0x10 )和 ESC 2 (字节 0x1b 0x32 )重置。

  • Example of column format bit image printing in Python using ESC *
  • Example of column format bit image printing in PHP using ESC *

  • 这种打印方法与旧打印机具有出色的兼容性,但您会在输出中得到一些细的水平线。

    使用 GS v 0 打印整个图像

    该位图命令接受不同的“光栅格式”数据。我利用了这样一个事实,即这种格式的 blob 与广泛实现的 PBM 中的二进制数据相同。位图格式(特别是带有 P4 header 的文件中的二进制数据)。

    图像的高度将受到您的打印缓冲区大小的限制,但可以达到 65535像素。由于表示,宽度必须能被 8 整除。
  • Example of raster format bit image printing in Python using VS v 0
  • Example of raster format bit image printing in PHP using GS v 0

  • 旁注:这些片段是现在出现在流行的开源 escpos-php 中的图像处理代码的实际原型(prototype)。和 python-escpos图书馆。使用现有库有很多好处,如果可以选择,您应该考虑它。

    关于printing - ESC POS 命令 ESC* 用于在打印机上打印位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44107254/

    74 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com