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
IMPRIMIR CODIGO BARRA TICKET EPSON
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
Parece que colegas, que a lo largo que tiene Fivewin nadien a trabajado con este tipo de impresoras
saludos
saludos
-
- Posts: 149
- Joined: Tue Jul 15, 2008 7:12 pm
- Location: Argentina
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
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
//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
-
- Posts: 149
- Joined: Tue Jul 15, 2008 7:12 pm
- Location: Argentina
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
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
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
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
Hola podrias dejar aquí en el foro un test.prg
asi no se pierde y lo aprovechamos todos,
saludos..
asi no se pierde y lo aprovechamos todos,
saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
-
- Posts: 149
- Joined: Tue Jul 15, 2008 7:12 pm
- Location: Argentina
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
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
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
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
Gracias por compartir,
lo posteamos como código para que sea mas fácil su lectura:
lo posteamos como código para que sea mas fácil su lectura:
Code: Select all | Expand
#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 "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "