先上源代码(这是一个控制USB接口的Zebra888打印机打印条形码的源代码):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 TForm1.PrintIIBtnClick(Sender: TObject);
var
ZPL: string;
slist: TStringList;
begin
slist := TStringList.Create;
slist.Clear;
slist.LoadFromFile('D:\ZPL.TXT'); {将ZPL语言放入文本文件中,方便调用}
ZPL := slist.Text;
WriteRawStringToPrinter(ComboBox1.Text,ZPL); {此处COMBOBOX1.TXT为安装过驱动程序的ZEBRA打印机名称,你可手工输入,也可自动获取}
end;点击按钮后,D:\ZPL.TXT的内容确实送到打印机的打印列表中(WritePrinter(Handle, PChar(S), Length(S), N);
这一句的作用),但打印机没有任何反应(打印机名称没有输错),不打印,怎么回事呢?程序哪里出错了呢?高手帮帮忙!
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 TForm1.PrintIIBtnClick(Sender: TObject);
var
ZPL: string;
slist: TStringList;
begin
slist := TStringList.Create;
slist.Clear;
slist.LoadFromFile('D:\ZPL.TXT'); {将ZPL语言放入文本文件中,方便调用}
ZPL := slist.Text;
WriteRawStringToPrinter(ComboBox1.Text,ZPL); {此处COMBOBOX1.TXT为安装过驱动程序的ZEBRA打印机名称,你可手工输入,也可自动获取}
end;点击按钮后,D:\ZPL.TXT的内容确实送到打印机的打印列表中(WritePrinter(Handle, PChar(S), Length(S), N);
这一句的作用),但打印机没有任何反应(打印机名称没有输错),不打印,怎么回事呢?程序哪里出错了呢?高手帮帮忙!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货