FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
enviar codigo de escapes
Debe haber mejor manera,yo lo solucione de esta forma
procedure TFprimostrador.btnpresuClick(Sender: TObject); var aexport:tqrasciiexportfilter; chkdos:bool; begin imprimeok:='S'; chkdos:=fcfgprinter.chkprndos.Checked; case chkdos of False:begin pnlopcprn.Visible:=false; if imprimeok='S' then begin fprnpresu.exptot.Expression:='sum(qprev.subtotal)'; fprnpresu.qrppresu.Print; end else MessageDlg('Problemas de Comunicacion Con Impresora..Verifique', mtInformation,[mbOk], 0); gridprev.SetFocus; end else begin pnlopcprn.Visible:=false; if imprimeok='S' then begin try fprnpresu2.exptot.Expression:='sum(qprev.subtotal)'; fprnpresu2.k1.Caption:=chr(14); fprnpresu2.k2.Caption:=chr(20); fprnpresu2.k3.Caption:=chr(15); fprnpresu2.k4.Caption:=chr(14); fprnpresu2.k5.Caption:=chr(20); aexport:=tqrasciiexportfilter.create('c:\preventa\presu.txt'); fprnpresu2.qrppresu2.ExportToFilter(aexport); ShellExecute(handle,'open','Command.com','Command.com /c type c:\preventa\presu.txt>lpt1','',sw_normal); aexport.Finish; finally if not printer.Printing then begin saltos:=fcfgprinter.edtsaltos.IntValue; paracorte; end; end; end else MessageDlg('Problemas de Comunicacion Con Impresora..Verifique', mtInformation,[mbOk], 0); gridprev.SetFocus; end; end; end; procedure TFprimostrador.mandocode(s: string); var Handle, hDeviceMode: THandle; N: DWORD; DocInfo1: TDocInfo1; Device, Driver, Port: array[0..255] of char; PrinterName: string; buf:array[0..255] of char; lbuf:integer; begin Printer.GetPrinter(Device, Driver, Port, hDeviceMode); PrinterName := Format('%s', [Device]); if not OpenPrinter(PChar(PrinterName), Handle, nil) then //RaiseLastWin32Error; imprimeok:='N'; try with DocInfo1 do begin pDocName := 'Control'; pOutputFile := nil; pDataType := 'RAW'; end; StartDocPrinter(Handle, 1, @DocInfo1); try lbuf:=length(s); copymemory(@buf,Pchar(s),lbuf); if not WritePrinter(Handle, @buf, lbuf, N) then //RaiseLastWin32Error; imprimeok:='N'; finally EndDocPrinter(Handle); end; finally ClosePrinter(Handle); end; end; procedure TFprimostrador.paracorte; var inisalto:integer; begin for inisalto:=1 to saltos do begin s:=#27+#10; mandocode(s); end; end; |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Te envían gratis discos de Linux a casa | Casimiro Notevi | Noticias | 5 | 17-07-2006 09:05:24 |
Envían cederrones gratis de varias distribuciones de Linux | dec | Noticias | 3 | 14-07-2006 16:15:51 |
Control de impresora | Ricardo León | API de Windows | 0 | 16-12-2005 17:51:39 |
Codigos Escape Impresora Sansumg | serhasae | Varios | 3 | 05-09-2005 10:40:17 |
Leer los paquetes que se envian por el puerto COM | rjsitruiz | Providers | 1 | 11-10-2004 23:36:53 |
|