Amigos:
Necesito imprimir etiquetas con código de barras, el tamaño de la etiqueta es de 6.5 cms de ancho por 2.5 cms de alto.
Cómo puedo indicarle a la clase TPrinter este pequeño tamaño ????
He probado con oPrn:SetSize pero no funciona.
Saludos, Armando
oPrn:SETSIZE() no me funciona
oPrn:SETSIZE() no me funciona
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Hola Armando
Si utilizas Barlib, por ejemplo para Ean13 es así
@ nLIz, nCIz ean13 ccodigo width npix size nlongi of oPrn banner
y los códigos de barra yo los he generado de 1 cm x 1 cm.
mira éste programa que hice hace mucho tiempo y juega con las medidas:
http://hyperupload.com/download/029f9c3 ... S.ZIP.html
Saludos
Jose Luis
Si utilizas Barlib, por ejemplo para Ean13 es así
@ nLIz, nCIz ean13 ccodigo width npix size nlongi of oPrn banner
y los códigos de barra yo los he generado de 1 cm x 1 cm.
mira éste programa que hice hace mucho tiempo y juega con las medidas:
http://hyperupload.com/download/029f9c3 ... S.ZIP.html
Saludos
Jose Luis
José Luis:
Muy bonito programa, te agradezco el interes.
Efectivamente estoy usando la excelente LIB de Cayetano y el problema que tengo no radica en especificar el tamaño del código de barras sino el tamaño de la etiqueta para que TPRinter salte al inicio de la siguiente despues de imprimir una, por cierto la impresora donde se usará es una ZEBRA que utiliza etiquetas en rollo.
Saludos y nuevamente gracias por tu respuesta
Muy bonito programa, te agradezco el interes.
Efectivamente estoy usando la excelente LIB de Cayetano y el problema que tengo no radica en especificar el tamaño del código de barras sino el tamaño de la etiqueta para que TPRinter salte al inicio de la siguiente despues de imprimir una, por cierto la impresora donde se usará es una ZEBRA que utiliza etiquetas en rollo.
Saludos y nuevamente gracias por tu respuesta
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Armando
Como podrás comprobar en el programa, hay unos get para el tamaño de la etiqueta y otros para el tamaño de las barras.
Bien, pues el tamaño que pudes poner es en cm. y admite cualquier tamaño, puedes poner por ejemplo tamaño de la etiqueta Alto 6.5 cm, Ancho 1.5 cm, le pones en grueso de la barra 0.02, y el alto de la barra 1, y te hace las etiquetas que le digas, o que tengas en una BD con esas dimensiones, indicándole los desplazamientos tras cada etiqueta y los margenes superior e inferior.
Esto es para ccualquier impresora que utilize por ejemplo Din A4, ahora si me dices que es una zebra, pues ya me pierdo un poco, aunque buscando en el foro, encontré ésto
http://fivetechsoft.com/forums/viewtopi ... ight=zebra
Ahí viene un código compatible con ELTRON/ZEBRA
A ver si te sirve
Saludos
Jose Luis
Como podrás comprobar en el programa, hay unos get para el tamaño de la etiqueta y otros para el tamaño de las barras.
Bien, pues el tamaño que pudes poner es en cm. y admite cualquier tamaño, puedes poner por ejemplo tamaño de la etiqueta Alto 6.5 cm, Ancho 1.5 cm, le pones en grueso de la barra 0.02, y el alto de la barra 1, y te hace las etiquetas que le digas, o que tengas en una BD con esas dimensiones, indicándole los desplazamientos tras cada etiqueta y los margenes superior e inferior.
Esto es para ccualquier impresora que utilize por ejemplo Din A4, ahora si me dices que es una zebra, pues ya me pierdo un poco, aunque buscando en el foro, encontré ésto
http://fivetechsoft.com/forums/viewtopi ... ight=zebra
Ahí viene un código compatible con ELTRON/ZEBRA
A ver si te sirve
Saludos
Jose Luis
José Luis:
Muchas gracias por el apoyo, voy entendiendo.
Solo un par de preguntas más, que clase usas para la impresión, TDosPrn, TPrinter, TReport ?, podrías mostrar tu código de impresión ?
Saludos
Muchas gracias por el apoyo, voy entendiendo.
Solo un par de preguntas más, que clase usas para la impresión, TDosPrn, TPrinter, TReport ?, podrías mostrar tu código de impresión ?
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Aqui está
A ver si te sirve de algo
Saludos
Jose Luis
Code: Select all
*+±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
*+
*+ Function codigo()
*+
*+ Called from ( barras.prg ) 1 - function main()
*+
*+±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
*+
function codigo( tipo, lprime, cprime, nancho, nlargo, ncodigo, ncanti, nOpci1, nlongi, npix, lini, cini, nnufo, npre, nDespH, nDespV, lPvp, lRef, lDen, nDesPvp, nDesRef, nDesDen, lBanner, cRef, cDetalle,tipo128 )
// ************************************************************************************************************************************************
local oPrn
local ccodigo
local llprime
local ccprime
local pasada := 1
local texto
local textoc
local textor
local npvp
local echo := 1
local nufo := nnufo
local oFont
local oFont1
local Conta :=0
local nindice:=tempo->(Recno())
private nLIz
private nCIz
private nLIzpvp
private nCIzpvp
private nLIzRef
private nCIzRef
private nLIzDes
private nCIzDes
if nOpci1=1
tempo->( dbSetfILTER( {|| tempo->selec=.T.},'tempo->selec=.T.') )
tempo->(dbgotop())
endif
printer oPrn from user preview
oPrn:SetPage(9)
if nufo != nil
DEFINE FONT oFont NAME( nufo[ 14 ] ) ;
SIZE 0, ( nufo[ 1 ] ) of oPrn
DEFINE FONT oFont1 NAME( nufo[ 14 ] ) ;
SIZE 0, ( nufo[ 1 ] ) of oPrn
else
DEFINE FONT oFont NAME "Arial" SIZE 0, 8 OF oPrn
DEFINE FONT oFont1 NAME "Arial" SIZE 0, 10 OF oPrn
endif
if nOpci1=2
npvp := alltrim( transform( npre, "@E 9,999.99" ) )
if tipo = 6
ncodigo := 'A' + alltrim( ncodigo ) + 'T'
endif
endif
ccodigo:=alltrim(ncodigo)
do while .t.
page
if pasada = 1
llprime := lini
ccprime := cini
else
llprime := lprime
ccprime := cprime
endif
texto := llprime - .27
textor := llprime - .6
textoc := llprime + nlongi
do while llprime + nlargo <= 29.7
CmtToPixel(llprime+nDespV, ccprime+nDespH, oPrn )
CmtToPvp (texto+nDespV, ccprime+nDespH+nDespvp ,oPrn)
CmtToRef (texto+nlongi+ndesPV+.3, ccprime+nDespH+ndesRef, oPrn)
CmtToDes (texto+nlongi+ndesPV+.5, ccprime+nDespH+ndesDen, oPrn)
if nOpci1=1
ccodigo := alltrim(tempo->codigo)
ncanti := tempo->cant
npvp := alltrim( transform( tempo->Pvp , "@E 99,999.99" ) )
cRef := alltrim(tempo->referencia)
cDetalle:=tempo->articulo
if tipo = 6
ccodigo := 'A' + alltrim( ccodigo ) + 'T'
endif
endif
do case
case tipo = 1
if lBanner
@ nLIz, nCIz ean13 ccodigo width npix size nlongi of oPrn banner
else
@ nLIz, nCIz ean13 ccodigo width npix size nlongi of oPrn
endif
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
// como el codigo es lo mismo que la referencia, he quitado la referencia
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 2
if lBanner
@ nLIz, nCIz ean8 ccodigo width npix size nlongi of oPrn BANNER
else
@ nLIz, nCIz ean8 ccodigo width npix size nlongi of oPrn
endif
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 3
@ nLIz, nCIz code128 ccodigo width npix size nlongi of oPrn mode tipo128
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 4
@ nLIz, nCIz code3_9 ccodigo width npix size nlongi of oPrn
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 5
if lBanner
@ nLIz, nCIz upca ccodigo width npix size nlongi of oPrn banner
else
@ nLIz, nCIz upca ccodigo width npix size nlongi of oPrn
endif
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 6
@ nLIz, nCIz codabar ccodigo width npix size nlongi of oPrn
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
case tipo = 7
if lBanner
@ nLIz, nCIz sup5 ccodigo width npix size nlongi of oPrn banner
else
@ nLIz, nCIz sup5 ccodigo width npix size nlongi of oPrn
endif
if lPvp
oPrn:Say( nLIzpvp, nCIzpvp,'PVP '+npvp+' '+ ' €.', ofont )
endif
if lRef
oPrn:Say( nLIzref, nCIzref,cRef, ofont )
endif
if lDen
oPrn:Say( nLIzdes, nCIzdes,OemToAnsi(rtrim(cDetalle)), ofont )
endif
endcase
ccprime += nancho
if nOpci1 = 1
if echo = ncanti
tempo->( dbskip() )
if tempo->( eof() )
exit
endif
do while .t.
if tempo->Selec=.F. .or. tempo->cant <= 0
tempo->(dbskip())
if tempo->( eof() )
exit
endif
else
exit
endif
enddo
if tempo->( eof() )
exit
endif
echo := 0
endif
endif
if echo = ncanti
exit
endif
echo += 1
if ccprime + nancho > 21
llprime += nlargo
texto += nlargo
textoc += nlargo
ccprime := cprime
endif
if llprime + nlargo >= 29.7
pasada += 1
exit
endif
enddo
endpage
SysRefresh()
do case
case nOpci1=1
if tempo->(Eof())
* if echo = ncanti
exit
endif
case nOpci1=2
if echo = ncanti
exit
endif
endcase
enddo
endprint
oFont:end()
oFont1:end()
tempo->(Dbsetfilter())
tempo->(Dbgoto(nindice))
return nil
static function CmtToPixel( nLi, nCi, oPrn )
local aPixel
aPixel := oPrn:Cmtr2Pix( nLi, nCi )
memvar->nLIz := aPixel[ 1 ]
memvar->nCIz := aPixel[ 2 ]
return NIL
Saludos
Jose Luis
José Luis:
Muchas gracias, por supuesto que sirve y de mucho.
Voy a hincarle el diente
Saludos
Muchas gracias, por supuesto que sirve y de mucho.
Voy a hincarle el diente
Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero