|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
想用delphi实现调用打印机用zpl指令打印,参考了网上的。遇上了问题,打印没有反应,打印机查看正在打印的列表里能看见文件存在了一瞬间,然后就没反应了。但是当我把 pDatatype := 'RAW';改成 pDatatype := 'Text';就可以成功打印,但是只能把zpl指令当作文本输出。求大佬指教!
- procedure WriteRawStringToPrinter(PrinterName, S: string);
- var
- Handle: THandle;
- N: DWord;
- DocInfo1: TDocInfo1;
- begin
- if not OpenPrinter(PChar(PrinterName), Handle, nil) then
- raise Exception.Create('打开打印机失败!');
- with DocInfo1 do
- begin
- pDocName := PChar('Test Doc');
- pOutputFile := nil;
- pDatatype := 'RAW';
- end;
- StartDocPrinter(Handle, 1, @DocInfo1);
- StartPagePrinter(Handle);
- WritePrinter(Handle, PChar(S), Length(S), N);
- EndPagePrinter(Handle);
- EndDocPrinter(Handle);
- ClosePrinter(Handle);
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- var
- ZPL: string;
- sList: TStringList;
- begin
- sList := TStringList.Create;
- try
- sList.Clear;
- sList.LoadFromFile('E:\print.txt');
- showmessage(sList.Text);
- ZPL := sList.Text;
- WriteRawStringToPrinter(comboBox1.Text, ZPL); //’打印机名’
- finally
- sList.Free;
- end;
- end;
复制代码 |
|