【问题标题】:Print NV image ESC/POS打印 NV 图像 ESC/POS
【发布时间】:2020-02-11 06:27:03
【问题描述】:

我是 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);
}

【问题讨论】:

    标签: c# escpos


    【解决方案1】:

    基本上,ESC/POS 使用 byte[] 而不是 string(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 L: GS ( L <Function 51>GS ( L <Function 64>GS ( L <Function 69>),因为它们提供以下附加功能:

    使用以下命令打印使用提供的实用程序注册的 NV 图像。
    kc1 和 kc2 是注册时指定的键码。

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

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

    【讨论】:

      猜你喜欢
      • 2023-02-18
      • 2016-09-12
      • 2018-08-29
      • 2013-11-23
      • 2017-12-08
      • 2021-12-12
      • 1970-01-01
      • 2013-07-01
      • 2014-12-14
      相关资源
      最近更新 更多