ESC POS打印PNG图片

3

我对Objective C上的ESC POS编程非常陌生。 我已经使用普通的ESC pos行命令测试了打印机,它完美地工作了。 但是我无法理解光栅模式命令。(GS v 0)

我需要的只是使用ESC POS打印PNG收据(我正在创建一个PNG文件作为收据)-通用ESC POS(不是STAR或EPSON) 我试图搜索这个命令,但规范不清楚。


我现在也在研究同样的事情。你需要将PNG转换为位图单色图像,然后将其发送到打印机。请参阅http://gofreerange.com/printer。 - Krista K
3个回答

1
我正在使用Epson TM-IV 88打印机从我的Android应用程序进行操作。
您需要使用名为TMFlogo的实用程序将.bmp徽标文件闪存到打印机中。打印机可以存储10个单独的图像。
然后,您发送以下FS代码以打印徽标。
请注意,sendCommand只是我应用程序中发送FS序列到打印机的特定函数。
sendCommand("FS p 1 0");    // print the logo in NVRAM position 1
sendCommand("FS p 2 0");    // print the logo in NVRAM position 2

以下是适用于爱普生ESC的FS命令参数总结:
ASCII FS p n m
Hex 1C 70 n m
Decimal 28 112 n m
where
1<=n<=255
0<=m<=3, 48<=m<=51
prints NV bit image n using mode m
where
m = 0,48 normal mode
m = 1,49 double-wide mode
m = 2,50 double tall mode
m = 3,51 quadruple mode

祝你好运。


我正在开发一个需要使用POS打印机的应用程序。我想要像下面这样打印:面条 2 $10 $20 麻婆豆腐 4 $200 $800如果传递\x1b\x24\x79\x00,则可以设置文本位置,但是当我输入x80时,它不接受十六进制数。 - Maulik patel

0

你需要区分两个问题:

  1. 打印机设备/端口。IP/RS-232/USB/蓝牙有不同的数据传输方法。请注意,打印机无法存储所有数据,速度较慢需要握手,并且您可能需要单独的线程来运行每个打印机。
  2. 打印机类型。虽然ESC/POS用于许多打印机,但有些具有高密度(24像素),而其他一些只有低密度(8像素)。此外,每种打印机类型的点数和每行字符数也不同。每台打印机的换行方式也不同。

让打印机类负责如何打印内容,让设备类决定如何发送数据。最上层需要一个类来决定要打印的图形/文本。

通常,打印机有一个HEX模式,您可以在其中查看是否将正确的字节发送到打印机。


0

通过热敏打印机打印图像

在某些打印机中,您可以将图像定义在打印机的非易失性存储器中,然后通过ESC cmd 1C 70 01 30从那里打印图像。

在其他一些打印机中,您可以在打印热敏打印机时直接提供图像路径。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接