2024年4月30日发(作者:)

给你一段我写过的代码供你参考一下:

一、如果是并口连接打印机,直接这样写就OK了,至于ZPL II语言,你可从网上下

载,语法还是相当简单的!

procedure 8Click(Sender: TObject);

var

lpt:textfile;

begin

assignFile(lpt,'LPT1');

rewrite(lpt);

write(lpt,'^XA^FO10,10^BCN,100^FD12345^FS^XZ');

CloseFile(lpt);

end;

二、如果是USB口连接打印机的话有两种方法,一是在CMD窗口下执行以下命令

NET USE LPT1 计算机名共享斑马打印机名称 PERSISTENT:YES

将USB虚拟成LPT1,这样用以上程序也可以使用

三、要使用斑马打印机WINDOWS驱动来实现

uses winspool

....

procedure WriteRawStringToPrinter(PrinterName:String; S:String);

var

Handle: THandle;

N: DWORD;

DocInfo1: TDocInfo1;

begin

if not OpenPrinter(PChar(PrinterName), Handle, nil) then

begin

ShowMessage('error ' + IntToStr(GetLastError));

Exit;

end;

with DocInfo1 do begin

pDocName := PChar('test doc'); {在打印列表中显示的打印内容}

pOutputFile := nil;

pDataType := 'RAW'; {关键,数据类型必须是RAW,这样打印机通过

驱动程序才能识别ZPL语言}

end;

StartDocPrinter(Handle, 1, @DocInfo1);

StartPagePrinter(Handle);

WritePrinter(Handle, PChar(S), Length(S), N);

EndPagePrinter(Handle);

EndDocPrinter(Handle);

ClosePrinter(Handle);

end;

procedure IBtnClick(Sender: TObject);

var

ZPL: string;

slist: TStringList;

begin

slist := ;

;

omFile('D:'); {将ZPL语言放入文本文件中,方便调用}

ZPL := ;

WriteRawStringToPrinter(,ZPL); {此处为安

装过驱动程序的ZEBRA打印机名称,你可手工输入,也可自动获取}

end;

以上是我常用的方式,主要是现在客户使用USB的越来越多,所以这种方法简单快捷,

楼主可以参考一下!!