我对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);
}
基本上,ESC/POS 使用 byte[] 而不是 string(Unicode( 进行打印。
实际上,WriteToBuffer(( 似乎发送了打印请求的字符串和命令,但如果这部分没有来源,则无法做出准确的答案。
您将要使用的命令是这个命令,它打印由"FS q"命令定义的 NV 映像。 这是所包含实用程序中已弃用(不推荐/过时?(模式,不应使用。
FS p [过时命令]:打印NV位图像 FS q [过时命令]:定义NV位图像
但是,如果您真的要使用"FS p"命令,发送到打印机的字节数据将是:
byte[] NVimageCmd = { 0x1c, 0x70, 0x01, 0x31 };
应指定的 NV 映像编号是数值 1 (0x01(,而不是字符"1"。
当前建议使用另一个命令,如下面的命令说明中所述。
【推荐功能】此功能
仅部分打印机型号支持,未来机型可能不支持。建议使用 NV 图形功能 ( GS ( L/GS 8 L: GS ( L ( L<功能 _x0035_1=">和 GS ( L<功能 _x0036_4=">– GS ( L<功能 _x0036_9=">( 因为它们提供以下附加功能:功能>功能>功能>
使用以下命令打印使用提供的实用程序注册的 NV 映像。
KC1 和 KC2 是注册时指定的密钥代码。
GS ( L<功能 _x0036_9=">: 打印指定的 NV 图形数据。功能>
顺便说一下,如果打印机和实用程序处于高级打印机驱动程序模式,请根据该模式的说明发送控制字体。