FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problema con codigos de escape
Hola a todos, tengo un problema, y es que mi impresora de tickets (SAMSUNG BIXOLON SRP-275) al imprimir, lo hace y termina con medio papel dentro, con lo que tengo que darle al botoncito para que vaya sacando el rollo y finalmente cortarlo. Pero me gustaría hacerlo a través de códigos de escape, que no son cosa sencilla porque directamente no me sale . Os pego el código que uso:
Código:
type TDatos = Record nLong : Integer; bDatos : Array[0..255] of byte; end; procedure CodigoEscape(sImpresora: String; sCodigo: String); var PtImpresora: TPrinter; DtCadena : TDatos; Begin PtImpresora := TPrinter.Create; try PtImpresora.PrinterIndex := PtImpresora.Printers.IndexOf( sImpresora ); PtImpresora.BeginDoc; DtCadena.nLong := Length( sCodigo ); StrPCopy( @DtCadena.bDatos, sCodigo ); Escape( PtImpresora.Handle, PASSTHROUGH, 0, @DtCadena, nil ); PtImpresora.EndDoc; finally FreeAndNil( PtImpresora ); end; end;
__________________
"There is nothing either good or bad, but thinking makes it so" William Shakespeare. |
#2
|
|||
|
|||
Hola,
por que no lo haces mas simple.. yo lo utilizo mas menos asi: AssignFile(MyFile, iPtoImpVal ); // (Para la LPT1) reset( MyFile ); rewrite(MyFile); write(MyFile,Chr(27) + chr(64)); // resetea impresora; write(MyFile, Chr(29)+ Chr(104)+ Chr(100)); // Altura barras write(MyFile, sP1, Chr(29)+ Chr(119)+ Chr(2)); // Ancho codigo write(MyFile, Chr(29)+ Chr(72)+ Chr(2)); // Posision codigo barras write(MyFile, Chr(29)+ Chr(107)+ Chr(4)+ sEstacion + sNVale + Chr(0)); // Codigo write(MyFile, Chr(27)+ Chr(97)+ Chr(0)); write(MyFile, Chr(27)+ Chr(33)+ Chr(16)); // Doble alto - On write(MyFile, 'Total........: ' + Justifica( Picture(SoloNumeros(FloatToStr(iTotal),0)), 'D', 10 )+'.-'); write(MyFile, Chr(27)+ Chr(33)+ Chr(8)); // Doble alto - Off // Pre-Corta vale if ( sCortaBarra = '1' ) then Incl( 1, sP1, chr(29)+chr(86)+ chr(49)); // Corta Papel // Abre la Gabetera conectada a la impresora de Boletas Incl( 0, sP1, Chr(27)+Chr(112)+'0'+'0'+'0' ); la funcion Incl(, .. es una funcion propia en la cual envio un estado para validar si salta o no de linea, el puerto sobre el cual imprimira.. y el resto de los caracteres son historia.. (comandos de impresion). Espero que estos ejemplos te sirvan. Saludos Jose Miguel B. |
#3
|
|||
|
|||
en lo personal se me hace un desperdicio mandar saltos de linea para que suba el papel, porque no mejor imprimes una parte o todo el encabezado del que seria el nuevo ticket y asi no desperdicias tanto papel?
|
#4
|
|||
|
|||
Hola.
Cuando hablo de salto de linea no me referia al papel. sino a la forma de imprimir. si voy a imprimir uno o varios codigos de escape lo escrivo asi: Incl( 0, sP1, Chr(27)+ Chr(33)+ Chr(8)); // Doble alto - Off Incl( 0, sP1, Chr(27)+ Chr(69)+ Chr(0)); // Negrita - Off Incl( 0, sP1, Chr(27)+ Chr(77)+ Chr(1)); // Comprimida On (Samsung) ... procesa los tres codigos y no mueve ni el cabezal, ni el papel. En cambio si deseo imprimir: Incl( 1, sP1, 'Sub-Total....: ' + Justifica( Picture(SoloNumeros(FloatToStr (iTotal),nDecimal)), 'D', 10 )+'.-'); Incl( 1, sP1, 'Descuento....: ' + Justifica( Picture(SoloNumeros(FloatToStr(itDescto),0)), 'D', 10 )+'.-'); Incl( 1, sP1, 'Total........: ' + Justifica( Picture(SoloNumeros(FloatToStr(iTotal),0)), 'D', 10 )+'.-'); Incl( 1, sP1, ' * * * ' ); Incl( 1, sP1, 'COMPROBANTE VALIDO SOLO PARA USO INTERNO' ); Incl( 1, sP1, 'NO VALIDO PARA RETIRO DE MERCADERIA.' ); Incl( 1, sP1, ' * ' ); imprime y salta, para imprimir la siguiente linea. Saludos Jose Miguel B. |
#5
|
||||
|
||||
Hola!
Lo que puedes hacer es agregar en la configuración una opción para que el usuario defina la cantidad de lineas libres al final del ticket. Esto te va a servir luego si cambias de impresora ya que algunas tienen el core más arriba o mas abajo. Yo lo manejo así y al final del ticket agrego algo así
Espero que te sirva. Saludos
__________________
Martin Zalazar |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Imprimir etiqueta con codigos escape | comba | Impresión | 6 | 05-08-2006 12:11:49 |
codigos escape | bernat_f | Impresión | 4 | 17-06-2006 18:27:57 |
Codigos Escape Impresora Sansumg | serhasae | Varios | 3 | 05-09-2005 10:40:17 |
Codigos de escape con Zreport | Sick boy | Impresión | 0 | 22-07-2005 12:27:13 |
Codigos de escape | jsanchez | Impresión | 1 | 17-05-2003 13:54:00 |
|