FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour IMPRIMIR CODIGO BARRA TICKET EPSON
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
IMPRIMIR CODIGO BARRA TICKET EPSON
Posted: Wed Jul 03, 2013 03: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

Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
Posted: Wed Jul 03, 2013 07:12 PM

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

saludos

Posts: 150
Joined: Tue Jul 15, 2008 07:12 PM
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
Posted: Wed Jul 03, 2013 07: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
Posts: 150
Joined: Tue Jul 15, 2008 07:12 PM
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
Posted: Wed Jul 03, 2013 07: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

Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
Posted: Thu Jul 04, 2013 06: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 "
Posts: 150
Joined: Tue Jul 15, 2008 07:12 PM
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
Posted: 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

Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: IMPRIMIR CODIGO BARRA TICKET EPSON
Posted: Fri Jul 05, 2013 02:42 AM
Gracias por compartir,
lo posteamos como c贸digo para que sea mas f谩cil su lectura:

Code (fw): Select all Collapse
#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 "

Continue the discussion