我对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);
}
答案 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 L:GS ( L <Function 51>和GS ( L <Function 64> – GS ( L <Function 69>),因为它们具有以下附加功能:
使用以下命令打印在附带的实用程序中注册的NV图像。
kc1和kc2是注册时指定的键控代码。
GS ( L <Function 69>:打印指定的NV图形数据。
顺便说一句,如果打印机和实用程序处于“高级打印机驱动程序”模式,请根据该模式的说明发送控制字体。