打印NV图像ESC / POS

时间:2019-10-14 15:39:29

标签: c# escpos

我对ESC POS命令非常陌生。我已将图像上传到打印机内存中。我可以使用打印机附带的实用程序来打印所需的图像。我想从我的应用程序中打印图像。我真的不知道如何使用C#打印它。我正在使用以下代码进行打印,但未打印任何内容。您能否指导我如何使用C#打印图像。

public void PrintImage()
{

    const string FS = "\u001C";
    string command = FS + "p11";
    WriteLine(command);

}

public void WriteLine(string text)
{
    WriteToBuffer(text);
    _writeByte(10);
    System.Threading.Thread.Sleep(WriteLineSleepTimeMs);
}
private void _writeByte(byte valueToWrite)
{
    byte[] tempArray = {valueToWrite};
    _serialPort.Write(tempArray,0,1);
}

1 个答案:

答案 0 :(得分:0)

基本上,ESC / POS使用字节[]而不是字符串(Unicode)打印。
实际上,WriteToBuffer()似乎发送了打印请求的字符串和命令,但是如果这部分没有源,则无法给出准确的答案。


您将要使用的命令是此命令,它将打印由“ FS q”命令定义的NV图像。 在随附的实用程序中,这是不推荐使用(不推荐?/过时?)模式,不应使用。

FS p [obsolete command]:打印NV位图
FS q [obsolete command]:定义NV位图

但是,如果您确实要使用“ FS p”命令,则发送到打印机的字节数据将是:

byte[] NVimageCmd = { 0x1c, 0x70, 0x01, 0x31 };

应指定的NV图像编号是数值1(0x01),而不是字符“ 1”。


当前建议使用另一个命令,如下面的命令描述中所述。

  

[推荐功能]
  仅某些型号的打印机支持此功能,将来的型号可能不支持此功能。建议使用NV图形功能(GS ( L / GS 8 LGS ( L <Function 51>GS ( L <Function 64>GS ( L <Function 69>),因为它们具有以下附加功能:

使用以下命令打印在附带的实用程序中注册的NV图像。
kc1和kc2是注册时指定的键控代码。

GS ( L <Function 69>:打印指定的NV图形数据。

顺便说一句,如果打印机和实用程序处于“高级打印机驱动程序”模式,请根据该模式的说明发送控制字体。