基于这个问题,我实现了以下代码以将直接命令发送到我的 Zebra TLP2844
var
cmm: AnsiString;
i: integer;
begin
commands.saveToFile('path\to\a\file');
Printer.BeginDoc;
cmm := '';
for i := 0 to commands.Count-1 do
cmm := cmm + commands[i] + #10;
Escape(Printer.Canvas.Handle, PASSTHROUGH, Length(cmm), PAnsiChar(cmm), nil);
Printer.EndDoc;
end;
commands 是一个 TSringList,其中包含我要发送到打印机的所有命令。请注意,我将所有命令保存到文本文件中。
好吧,如果我通过驱动程序首选项发送此文本文件进行打印,使用工具 -> 操作 -> 发送文件,它会完美打印。
如果我使用上面的代码,它会在打印后吐出一些额外的标签行。
显然,它向我表明我在这里做错了什么,但我不知道是什么。
我试过的
- 一个接一个地发送命令,而不是像在代码中那样连接它们。结果:没有打印任何内容。
- 将#10 更改为#13#10。结果:同样疯狂的行为(实际上 Zebra EPL 文档说它会忽略它发现的任何 #13)
为了以与 Zebra 工具完全相同的方式将命令发送到打印机,我还应该尝试什么?