如果是USB接口连接打印机的话有两种方法:
1、在CMD窗口下将USB虚拟成LPT
第一步,配置网卡的IP地址,指定一个固定IP与子网掩码; 第二步,共享USB接口的条码打印机,记得起一个简单易记的名字,这个是打印机共享名, 我的打印机起名叫GP5860 ; 第三步,映射出刚才共享的打印机到LPT1端口,在命令行端口运行NET USE LPT1: //计算机名或IP/打印机名 /Persistent:YES,回车;(把计算机名或IP和打印机名改成你自己的) 例: NET USE LPT1 //127.0.0.1/GP5860 /PERSISTENT:YES 说明: NET USE 列出所有的映射内容 NET USE LPT1 /DELETE 删除前面的映射定义 2、使用斑马打印机windows驱动来实现 uses winspool ............... 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 bbtnPOSPrintClick(Sender: TObject); var ZPL: string; sList: TStringList; begin sList := TStringList.Create; try sList.Add(chr(27) + chr(64)); //初始化打印头 sList.Add(' 歡迎光臨 '); sList.Add(' * * * * * * * * * * * * * *'); sList.Add(''); sList.Add(''); sList.Add(''); sList.Add(''); ZPL := sList.Text; WriteRawStringToPrinter('GP-5860III', ZPL); //我的打GP-5860III finally sList.Free; end; end;