Amigo mais uma vez realmente estava passando o nome da impressora errado. agora não da mais erro exite algo errado ainda no codigo pois mesmo imprimindo ele não passa pela função segue abaixo o codigo novo. "procedure TfrmRecibo.bbImprimirClick(Sender: TObject); var hprinter:thandle; bytesneeded,numjobs,i,ii:cardinal; pj:pjobs; Driver,Port,Device : String; DeviceMode : THandle; begin //impressora SetLength(Driver,255); SetLength(Port,255); SetLength(Device,255); Printer.GetPrinter(PChar(Device),PChar(Driver),PChar(Port),DeviceMode); application.CreateForm(TqrNew_Rec_imp, qrNew_Rec_imp); qrNew_Rec_imp.Preview; label1.Caption :=Device; hprinter := getcurrentprinterhandle(label1.Caption); pj := AllocMem(bytesneeded); if not EnumJobs(hprinter,0,1000,2{1},pj,bytesneeded,bytesneeded,numjobs) then RaiseLastWin32Error; if numjobs<>0 then begin (AQUI ESTA O ERRO SEMPRE RETORNA ZERO MESMO IMPRIMINDO OU NÃO) if strToint(getstatus(pj^.PagesPrinted))>0 then begin Showmessage('imprimiu'); end; end; ClosePrinter(hprinter); qrNew_Rec_imp.Destroy; end; " MAIS UMA VEZ GRATO PELA ATENÇÃO