FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Impresion de Ticket
Hola a todos, necesito hacer una impresion de ticket en una impresora de matriz EPSON TM-T88III desde Delphi 2005 y no tengo la menor idea de como hacerlo,
¿Alguien podra orientarme exactamente como hacerlo? tengo que saber la secuencia de escape? hay algun reporteador que lo haga directamente? podran recomendarme algunas funciones genericas o especificas p/ Impresoras? No me importa el puerto aunque si es el LPT1 mucho mejor. Les agradezco mucho a todos de antemano, saludos!!! Última edición por betto fecha: 20-05-2008 a las 22:28:20. |
#2
|
||||
|
||||
Hola, un ejemplo buscando en los foros:
http://clubdelphi.com/foros/showpost...3&postcount=13 Saludos.
__________________
Mi BLOG - ¡Joder, leanse la guia de estilo! Las Palabras son enanas, los ejemplos gigantes. |
#3
|
|||
|
|||
Que tal
Yo utilizo Report Manager para imprimir tickets en una TMU220, le mando códigos de escape para manipular tamaños de letra de la impresora y activar el cutter. Pero también puedes simplemente utilizar los tipos de letra que tengas instalados en tu SO. Es muy sencillo y fácil de modificar. Además que tiene soporte para la impresora que mencionas. Saludos Bismarck |
#4
|
|||
|
|||
Impresion con puerto LPT1
Usa el procedimiento siguiente:
procedure TFpto_pollo.imprime_fac(stdoc, stipo:shortstring;sndoc:integer); Var MyPrinter: TextFile; xcan, xdes, xval, xtot, xpag, xcam:shortstring; xsum:real; consulta:string; begin AssignFILE(MyPrinter,'USB'); ReWrite(MyPrinter); Write(MyPrinter, CHR(27) + CHR(64)); // Inicializar Impresora //Write(MyPrinter, CHR(27)+CHR(67)+CHR(44)); // Fijar Tamaño en Lineas Write(MyPrinter,CHR(27)+ CHR(103)); // Tipo de Letra Chicas //Write(MyPrinter,CHR(27)+CHR(197)); // Negrita //Write(MyPrinter,CHR(27)+CHR(179)+CHR(28)); // Espacio entre Lines if stipo='FAC' then Writeln(MyPrinter,'MICROMARKET VIA RAPIDA') else Writeln(MyPrinter,'POLLOS ROSS'); if stipo='FAC' then Writeln(MyPrinter,'AV.ROQUE AGUILERA ESQ.RADIAL CASTILLA') else Writeln(MyPrinter,'AV.SANTOS DUMONT CASI 4TO ANILLO'); if stipo='FAC' then Writeln(MyPrinter,'NIT 2642735017 TELF.3513621') else Writeln(MyPrinter,'NO ES FACTURA TELF.3533417'); if stipo='FAC' then Writeln(MyPrinter,'FACTURA : '+wnrofac.text+' ALFAB.'+walfab.text); if stipo='FAC' then Writeln(MyPrinter,'NR.ORDEN:'+wnorden.text+' FECHA:'+datetostr(now)); if wnomfac.Text<>'' then Writeln(MyPrinter,'Senores : '+wnomfac.text) else Writeln(MyPrinter,'Senores : Clientes Varios'); //---------------------------- consulta:='select * from lgloprod where tdoc='+car+stdoc+car+' and ndoc='+inttostr(sndoc); DModulo.QConsulta.Close; DModulo.QConsulta.sql.Clear; DModulo.QConsulta.sql.add(consulta); DModulo.QConsulta.Open; if wnit.Text<>'' then Writeln(MyPrinter,'NIT : '+wnit.text) else Writeln(MyPrinter,'PARA SERVIRSE EN :'+DModulo.QConsulta.fieldbyname('refer').asstring); //------------------------------ Writeln(MyPrinter,'-------------------------------------'); Writeln(MyPrinter,' Cant. Producto Valor '); Writeln(MyPrinter,'-------------------------------------'); xsum:=0; consulta:='select * from lmovpro where tdoc='+car+stdoc+car+' and ndoc='+inttostr(sndoc); DModulo.QConsulta.Close; DModulo.QConsulta.sql.Clear; DModulo.QConsulta.sql.add(consulta); DModulo.QConsulta.Open; DModulo.QConsulta.First; while not DModulo.QConsulta.Eof do begin xcan:=format('%6.2f',[DModulo.QConsulta.fieldbyname('cant').asfloat]); xdes:=copy(DModulo.QConsulta.fieldbyname('descri').AsString,1,20); xval:=format('%8.2f',[DModulo.QConsulta.fieldbyname('valor_bs').asfloat]); xsum:=xsum+DModulo.QConsulta.fieldbyname('valor_bs').asfloat; Writeln(MyPrinter,xcan+' '+xdes+' '+xval); DModulo.QConsulta.Next; end; Writeln(MyPrinter,'-------------------------------------'); xtot:=format('%8.2f',[xsum]); xpag:=format('%8.2f',[strtofloat(wpagbs.text)]); xcam:=format('%8.2f',[strtofloat(wcamb.text)]); Writeln(MyPrinter,' Total Facturado : '+xtot); Writeln(MyPrinter,' Total Pagado : '+xpag); Writeln(MyPrinter,' Cambio : '+xcam); Writeln(MyPrinter,'-------------------------------------'); if stipo='FAC' then Writeln(MyPrinter,'MICROMARKET VIA RAPIDA LE AGRADECE') else Writeln(MyPrinter,'POLLOS ROSS LE AGRADECE'); Writeln(MyPrinter,'POR SU PREFERENCIA '+stdoc+'-'+inttostr(sndoc)); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); //Write(MyPrinter,#12); // Expulsar la Hoja System.CloseFile(MyPrinter); end; Me funciona de pelicula y es super sencillo y no te complicas como con las otras soluciones que te plantean |
#5
|
|||
|
|||
Muchas Gracias A Todos!!!!
Ya Quedo... |
#6
|
|||
|
|||
Aprovecho el hilo ...
Me funciono de maravillas .. solo no me anduvo el salto de hoja
para cortar el papel .. yo uso una Epson TM 300A (es la primera vez con este tipo de impresoras.. ) Deberia saltar la hoja de la misma forma que una 810 por ejemplo y despues retrodecerlo?... Como usa rollo de papel no se si eso sera factible... sino la otra opcion es imprimir blancos hasta la posicion de corte ..lo que pasa que el siguiente ticket queda con un pedazo de ticket en blanco en la parte superior ( no es que seamos muy tacaños por aca ...pero sumado al despedicio de papel ademas queda un poco feito..) gracias a todos Saludos |
#7
|
||||
|
||||
Si lo que te preocupa ingel es el desperdicio de papel puedes aprovechar el hecho de que el comienzo de todos los tickets es igual (logo, nombre de la empresa, dirección, teléfono, etc ...) para imprimir al final de un ticket el comienzo del siguiente. Si lo ajustas bien te podrás ahorrar esas lineas en blanco al final de cada ticket.
|
#8
|
|||
|
|||
Gracias Seoane
Lo del desperdicio no era fundamental... lo mas fastidioso era correr y cortar el papel... pero lo pude solucionar a medias con :
Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Writeln(MyPrinter,''); Write(MyPrinter,#27#105); //Esto 'CORTA el TICKET' De todas formas obviamente el ticket siguiente tiene una franja de papel ANTES de comenzar que son todos los Writeln(MyPrinter,'') pero bueno.. puedo vivir con ello... GRACIAS ..SDs! |
#9
|
|||
|
|||
alquien tiene los codigos de ESC/POS de la impresora de referencia, ya que el #27#105 funciona de maravillas, me gustaria usar otros codigos mas pero no tengo manuales para buscarlos. Desde ya muchas gracias
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
QuickReport y Ticket | escullar | Impresión | 2 | 20-06-2008 01:53:18 |
impresion ticket en XP | rebollo75 | Impresión | 2 | 04-11-2004 14:19:37 |
Impresion de logotipo ticket | luiguiray | Impresión | 2 | 25-08-2004 01:44:54 |
Impresiòn de un ticket | trex2000 | Impresión | 4 | 06-08-2004 18:05:45 |
Imprimir en ticket? | pgraciap | Impresión | 1 | 08-11-2003 02:12:17 |
|