我正在尝试将命令直接发送到 Zebra TLP2844 打印机。我遵循了这里提出的建议,我的最终代码如下:
var
cm: String;
p: TPrinter;
i: integer;
begin
p := Printer;
p.BeginDoc;
for i := 0 to memo1.Lines.Count-2 do
begin
cm := memo1.Lines[i];
if Escape(p.Canvas.Handle,
PASSTHROUGH,
Length(cm),
PAnsiChar(cm),
nil) = 0 then
ShowMessage('Command error: ' + IntToStr(GetLastError));
end;
p.EndDoc;
end;
memo1 的内容是(第一行为空),如下所示:
N
q609
Q203,26
B26,26,0,UA0,2,2,152,B,"603679025109"
A253,26,0,3,1,1,N,"SKU 6205518 MFG 6354"
A253,56,0,3,1,1,N,"2XIST TROPICAL BEACH"
A253,86,0,3,1,1,N,"STRIPE SQUARE CUT TRUNK"
A253,116,0,3,1,1,N,"BRICK"
A253,146,0,3,1,1,N,"X-LARGE"
P1,1
打印机似乎没有正确接收或解释这些命令。我检查了打印机是否处于页面模式(EPL2),使用建议的代码我可以打开打印机句柄。但是什么都没有打印,只送入了一行新的标签。
我试图将命令完全更改为明显错误的命令,并且行为是相同的。
我还应该寻找什么来打印东西?