IMPRIMIR CODIGO BARRA TICKET EPSON

IMPRIMIR CODIGO BARRA TICKET EPSON

Postby jbrita » Wed Jul 03, 2013 3:03 pm

Hola amigos, nuevamente por aca, necesito imprimir codigo de barra en 2 impresora de ticket una epson tm-t88iv y la otra epson tm-t88v. adolfo me mando este codigo pero no logro hacerlo que imprima

oprn: = TDosPrn (): New ("lpt1") / / en Impresora LPT1

oprn: = TDosPrn (): New ("COM1") / / en Impresora en COM1


cCodigoBarra:="1211212"

oprn: Say (1, 0, CHR (27) + "E1" + "NOTA DE VENTA Exenta" + CHR (27) + "E0") / / Imprime en Negrita

oprn: Say (3, 0, "Fecha:" + DTOC (Date ()) )

oprn: Say (4, 0, DiLocal (nLOCAL))

oprn: Say (5, 0, "No valido COMO Documento de Venta.")

oprn: Say (6, 0, "")

oprn: Say (14, 9, CHR (29) + "k" + CHR (69) + CHR (9) + cCodigodeBarra) / / Imprime Código de barra

/ / Dejar un lo Menos 7 Espacios Para El corte de la Impresora

oprn: Say (21, 0, CHR (27) + "i") / / Cortar Papel
oprn: End (

con este codigo no logro hacer q me imprima el codigo de barra, alguno de usteds que tenga otra idea.

saludos
jbrita
 
Posts: 502
Joined: Mon Jan 16, 2006 3:42 pm

Re: IMPRIMIR CODIGO BARRA TICKET EPSON

Postby jbrita » Wed Jul 03, 2013 7:12 pm

Parece que colegas, que a lo largo que tiene Fivewin nadien a trabajado con este tipo de impresoras

saludos
jbrita
 
Posts: 502
Joined: Mon Jan 16, 2006 3:42 pm

Re: IMPRIMIR CODIGO BARRA TICKET EPSON

Postby postinelli » Wed Jul 03, 2013 7:40 pm

Yo lo hago así

//aca agrego el código de barras si es que tiene impresora TERMICA
if TipoImpre="TERMICA"
cCadena:=strzero(NMOV,7)+strzero(creditos->CREDITO,6)
oPrn:Say( nRow, nCol, chr(29) + chr(104) + chr(50) )
oPrn:Say( nRow, nCol, chr(29) + chr(72) + chr(0) )
oPrn:Say( nRow, nCol, chr(29) + chr(107) + Chr(72) + Chr(LEN( AllTrim( cCadena ) )) + AllTrim( cCadena ) + Chr(0) )
oPrn:Say( nRow, nCol , ' ***' + dtos(DiaHoy)+strzero(CodSucur,3)+strzero(creditos->SOLICITUD,6)+strzero(creditos->CREDITO,6)+strzero(NMOV,7) + '***' )
nRow ++
oPrn:Say( nRow, nCol, replicate('-',40) )
nRow ++
else
oPrn:Say( nRow, nCol , ' ***' + dtos(DiaHoy)+strzero(CodSucur,3)+strzero(creditos->SOLICITUD,6)+strzero(creditos->CREDITO,6)+strzero(NMOV,7) + '***' )
nRow ++
nRow ++
oPrn:Say( nRow, nCol, replicate('-',40) )
nRow ++
endif

//esto es para el corte automatico del papel
if TipoImpre="TERMICA"
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oprn:Startpage()
oprn:command("27","64" )
oprn:command("27","105" )
oprn:Command("18" )
oprn:Endpage()
oprn:End()
//hasta aca el corte automatico
endif
postinelli
 
Posts: 149
Joined: Tue Jul 15, 2008 7:12 pm
Location: Argentina

Re: IMPRIMIR CODIGO BARRA TICKET EPSON

Postby postinelli » Wed Jul 03, 2013 7:42 pm

Yo imprimo perfectamente codigos de barra
creo que el limite es 15 digitos o por ahí, si la cadena es mas larga directamente no imprime nada

tambien hago el corte automatico del papel

espero te sirve

cualquier cosa avisame y te mando un ejemplo funcionando
postinelli
 
Posts: 149
Joined: Tue Jul 15, 2008 7:12 pm
Location: Argentina

Re: IMPRIMIR CODIGO BARRA TICKET EPSON

Postby sysctrl2 » Thu Jul 04, 2013 6:47 pm

Hola podrias dejar aquí en el foro un test.prg
asi no se pierde y lo aprovechamos todos,
saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 1021
Joined: Mon Feb 05, 2007 7:15 pm

Re: IMPRIMIR CODIGO BARRA TICKET EPSON

Postby postinelli » Thu Jul 04, 2013 10:26 pm

Aqui está lo que hice en su momento para pruebas
funciona correctamente

espero le sirva a alguien más

#include "FiveWin.ch"

/*
pruebas de impresora TM-T88III
IMPRESORA TERMICA DE TKS
01/08/2010
*/

//----------------------------------------------------------------------------//
Function PrueT88()

Local nRow:=1, nCol:=0

MsgInfo('Verifique el Estado de la Impresora','!!! ATENCION !!!')

oPrn:=TDosPrn():New("lpt1")
oPrn:StartPage() // optional

oPrn:Say( nRow, nCol, replicate('-',42) )
nRow ++
oPrn:Say( nRow, nCol , "COMIENZO DEL REPORTE" )
nRow ++
oPrn:Say( nRow, nCol, replicate('-',42) )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol, replicate('-',42) )
nRow ++
oPrn:Say( nRow, nCol , "FIN DEL REPORTE" )
nRow ++
oPrn:Say( nRow, nCol, replicate('-',42) )
nRow ++

// esto es para códigos de barras
//sólo se pueden imprimir hasta 13 caracteres
//sólo funciona desde la Columna 0, si es mayor a 0 no imprime nada
cCadena:="0123456789012"
//oPrn:Say( nRow, nCol, chr(29) + chr(104) + chr(120) ) ///chr(104) + chr(120) donde 120 define el alto del codigo de barras Valores Admitidos minimo 50 maximo 120
//oPrn:Say( nRow, nCol, chr(29) + chr(72) + chr(0) ) ///indicacion de impresion de codigo de barra
//oPrn:Say( nRow, nCol, chr(29) + chr(107) + Chr(72) + Chr(LEN( AllTrim( cCadena ) )) + AllTrim( cCadena ) + Chr(0) ) //impresion directa
oPrn:Say( nRow, nCol, chr(29) + chr(104) + chr(50) )
oPrn:Say( nRow, nCol, chr(29) + chr(72) + chr(0) )
oPrn:Say( nRow, nCol, chr(29) + chr(107) + Chr(72) + Chr(LEN( AllTrim( cCadena ) )) + AllTrim( cCadena ) + Chr(0) )
oPrn:Say( nRow, nCol, replicate(' ',21-(len(alltrim(cCadena))/2) ) + AllTrim( cCadena ) + replicate(' ',21-(len(alltrim(cCadena))/2) ) )
nRow ++

cCadena:="ABCDEFGHIJKLM"
oPrn:Say( nRow, nCol, chr(29) + chr(104) + chr(50) )
oPrn:Say( nRow, nCol, chr(29) + chr(72) + chr(0) )
oPrn:Say( nRow, nCol, chr(29) + chr(107) + Chr(72) + Chr(LEN( AllTrim( cCadena ) )) + AllTrim( cCadena ) + Chr(0) )
oPrn:Say( nRow, nCol, replicate(' ',21-(len(alltrim(cCadena))/2) ) + AllTrim( cCadena ) + replicate(' ',21-(len(alltrim(cCadena))/2) ) )
nRow ++

//esto es para el corte automatico del papel
//separo 5 filas que es la distancia entre la ultima impresion y la linea de corte
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Endpage()
//este es el grupo de comandos especificos para corte de papel
oprn:Startpage()
oprn:command("27","64" )
oprn:command("27","105" ) //corte total
oprn:command("18" )
oprn:Endpage()
oPrn:End()
//hasta aca el corte automatico
postinelli
 
Posts: 149
Joined: Tue Jul 15, 2008 7:12 pm
Location: Argentina

Re: IMPRIMIR CODIGO BARRA TICKET EPSON

Postby sysctrl2 » Fri Jul 05, 2013 2:42 am

Gracias por compartir,
lo posteamos como código para que sea mas fácil su lectura:

Code: Select all  Expand view  RUN

#include "FiveWin.ch"

/*
pruebas de impresora TM-T88III
IMPRESORA TERMICA DE TKS
01/08/2010
*/


//----------------------------------------------------------------------------//
Function PrueT88()

Local nRow:=1, nCol:=0

MsgInfo('Verifique el Estado de la Impresora','!!! ATENCION !!!')

oPrn:=TDosPrn():New("lpt1")
oPrn:StartPage() // optional

oPrn:Say( nRow, nCol, replicate('-',42) )
nRow ++
oPrn:Say( nRow, nCol , "COMIENZO DEL REPORTE" )
nRow ++
oPrn:Say( nRow, nCol, replicate('-',42) )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol , "-Linea de Texto de 42 Caracteres de Ancho-" )
nRow ++
oPrn:Say( nRow, nCol, replicate('-',42) )
nRow ++
oPrn:Say( nRow, nCol , "FIN DEL REPORTE" )
nRow ++
oPrn:Say( nRow, nCol, replicate('-',42) )
nRow ++

// esto es para códigos de barras
//sólo se pueden imprimir hasta 13 caracteres
//sólo funciona desde la Columna 0, si es mayor a 0 no imprime nada
cCadena:="0123456789012"
//oPrn:Say( nRow, nCol, chr(29) + chr(104) + chr(120) ) ///chr(104) + chr(120) donde 120 define el alto del codigo de barras Valores Admitidos minimo 50 maximo 120
//oPrn:Say( nRow, nCol, chr(29) + chr(72) + chr(0) ) ///indicacion de impresion de codigo de barra
//oPrn:Say( nRow, nCol, chr(29) + chr(107) + Chr(72) + Chr(LEN( AllTrim( cCadena ) )) + AllTrim( cCadena ) + Chr(0) ) //impresion directa
oPrn:Say( nRow, nCol, chr(29) + chr(104) + chr(50) )
oPrn:Say( nRow, nCol, chr(29) + chr(72) + chr(0) )
oPrn:Say( nRow, nCol, chr(29) + chr(107) + Chr(72) + Chr(LEN( AllTrim( cCadena ) )) + AllTrim( cCadena ) + Chr(0) )
oPrn:Say( nRow, nCol, replicate(' ',21-(len(alltrim(cCadena))/2) ) + AllTrim( cCadena ) + replicate(' ',21-(len(alltrim(cCadena))/2) ) )
nRow ++

cCadena:="ABCDEFGHIJKLM"
oPrn:Say( nRow, nCol, chr(29) + chr(104) + chr(50) )
oPrn:Say( nRow, nCol, chr(29) + chr(72) + chr(0) )
oPrn:Say( nRow, nCol, chr(29) + chr(107) + Chr(72) + Chr(LEN( AllTrim( cCadena ) )) + AllTrim( cCadena ) + Chr(0) )
oPrn:Say( nRow, nCol, replicate(' ',21-(len(alltrim(cCadena))/2) ) + AllTrim( cCadena ) + replicate(' ',21-(len(alltrim(cCadena))/2) ) )
nRow ++

//esto es para el corte automatico del papel
//separo 5 filas que es la distancia entre la ultima impresion y la linea de corte
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Say( nRow, nCol, ' ' )
nRow ++
oPrn:Endpage()
//este es el grupo de comandos especificos para corte de papel
oprn:Startpage()
oprn:command("27","64" )
oprn:command("27","105" ) //corte total
oprn:command("18" )
oprn:Endpage()
oPrn:End()
//hasta aca el corte automatico

 
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 1021
Joined: Mon Feb 05, 2007 7:15 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 49 guests