Eniva archivo con comandos ZPL a una impresora Zebra

14,409 views
Skip to first unread message

CRBV

unread,
Jun 12, 2013, 12:57:18 PM6/12/13
to publice...@googlegroups.com
Grupo, quiero imprimir etiquetas con códigos de barra en una impresora Zebra GC420t
con el ZebraDesigner creo mi etiqueta y genero un archivo con los comandos ZPL
como envío desde VFP (Versión 7 o 9) a la impresora ese archivo, la impresora esta
instalada en Windows 7 Profesional y conectada por USB.
 
Desde ya muchas gracias.
 
 
Carlos Verón
Santo Tome - Santa Fe
Argentina.

Cesar Diaz

unread,
Jun 12, 2013, 1:52:03 PM6/12/13
to publice...@googlegroups.com
Tienes suerte, acabo de pelear con una de ellas para cambiar unas etiquetas, yo la defino como generica solo texto y la envio con codigos de escape los mandatos zpl, de la siguiente manera:
set printer to nombreimpresora
        SELECT etiquetax
        GO top
        DO WHILE NOT EOF()
            IF RECNO('etiquetax')=saltoimpar AND impares=.t.
                *!*    Imprime 1 Etiqueta (Lado Izquierdo)
                ??? "^XA"
                ??? "^CI27" &&&&&PARA LA Ñ???
                ??? "^FO150,115^A0,15,30^FD" + "SECCION "+ALLTRIM(STR(USUARIO))+"^FS"
                ??? "^FO80,110^A0,25,30^FD" + ALLTRIM(DESTINO) + "^FS"
                ??? "^FO82,20^A0,19,19^FD" + LEFT(TEXTO,18) +"^FS"
                ??? "^FO85,50^A0,20,20^FD" + " C/" + PADL(COLOR,4,"0") + "^FS"
                ??? "^FO165,50^A0,20,20^FD" + "T/"+ALLTRIM(TALLAFINAL) + "^FS"
                ??? "^FO225,50^A0,20,23^FD" + IIF(TALLA='00'," UNICA ",DESDE  + ".." + HASTA )+ "^FS"
                ??? "^FO120,76^A0,20,40^FD" + CODIGO + "^FS"
                ??? "^FO25,25^BY2^BER,50,Y,N,N^FD" + CODIGO+COLOR+TALLA +EAN13+ "^FS" &&&& ES DE BARRAS
                ??? "^CI0,21,36"
                ??? "^FO77,170^A0,55,60^FD"+ PADL(alltrim(str((VAL(IIF(etiquetax.pvp='000000',etiquetax.pl,etiquetax.pvp))/100),8,2)),7," ")+"$"+"^FS"
                ??? "^XZ"
            ELSE
                *!*    Imprime 2 Etiquetas
                ??? "^XA"
                ??? "^CI27" &&&&&PARA LA Ñ???
                ??? "^FO150,115^A0,15,30^FD" + "SECCION " + ALLTRIM(STR(USUARIO))+ "^FS" + "^FO490,115^A0,15,30^FD" + "SECCION " + ALLTRIM(STR(USUARIO1))+"^FS"
                ??? "^FO80,110^A0,25,30^FD" + ALLTRIM(DESTINO) + "^FS" + "^FO420,110^A0,25,30^FD" + ALLTRIM(DESTINO1) + "^FS"
                ??? "^FO82,20^A0,19,19^FD"+ LEFT(TEXTO,18) + "^FS" +"^FO427,20^A0,19,19^FD" + LEFT(TEXTO1,18) + "^FS"
                ??? "^FO85,50^A0,20,20^FD" + " C/" + PADL(COLOR,4,"0") + "^FS" + "^FO425,50^A0,20,20^FD" + " C/"+PADL(COLOR,4,"0")+"^FS"
                ???    "^FO165,50^A0,20,20^FD"+"T/"+ALLTRIM(TALLAFINAL)+ "^FS" + "^FO505,50^A0,20,20^FD"+"T/"+ALLTRIM(TALLAFINAL1)+"^FS"
                ??? "^FO225,50^A0,20,23^FD" + IIF(TALLA='00'," UNICA ",DESDE  + ".." + HASTA )+ "^FS" + "^FO565,50^A0,20,20^FD"+IIF(TALLA1='00'," UNICA ",DESDE1  + ".." + HASTA1 )+ "^FS"
                ??? "^FO110,76^A0,20,40^FD"+ CODIGO+  "^FS" + "^FO460,76^A0,20,40^FD"+CODIGO1+"^FS"
                ??? "^FO25,25^BY2^BER,50,Y,N,N^FD" + CODIGO+COLOR+TALLA +EAN13+ "^FS" + "^FO365,25^BY2^BER,50,Y,N,N^FD"+ CODIGO+COLOR+TALLA +EAN13 + "^FS"&&&& ES DE BARRAS
                ??? "^CI0,21,36" &&&para poder usar el simbolo del €
                ??? "^FO75,170^A0,55,60^FD"+" "+ PADL(alltrim(str((VAL(IIF(etiquetax.pvp='000000',etiquetax.pl,etiquetax.pvp))/100),8,2)),7," ")+"$"+ "^FS"+"^FO412,170^A0,55,60^FD"+" "+PADL(alltrim(str((VAL(IIF(etiquetax.pvp1='000000',etiquetax.pl1,etiquetax.pvp1))/100),8,2)),7," ")+"$"+ "^FS"
                ??? "^XZ"
            ENDIF
            SELECT etiquetax
            SKIP
        Enddo   

HernanCano

unread,
Jun 12, 2013, 7:17:53 PM6/12/13
to publice...@googlegroups.com
 
César:
la pregunta dice explícitamente "... conectada por USB...", por lo tanto creo que tu propuesta no funciona.
Lee el otro mensaje que le doy directamente a Carlos.

HernanCano

unread,
Jun 12, 2013, 7:26:10 PM6/12/13
to publice...@googlegroups.com
César:
He tenido inconvenientes similares, y necesidades similares (la diferencia es que han sido con impresoras Epson, pero también de impacto, de puntos).
 
La solución ha sido conectar la impresora a un puerto paralelo, pero como los computadores ("nuevos") no lo tienen, entonces ha sido necesario adquirir una tarjeta para puetrto paralelo. De esta forma el computador (o mejor 'los computadores' sobre los que he hecho ésto) ha quedado con un puerto LPT3, y la impresión la hago normalmente con el sgte comando:
 
copy IMPRESION.ZPL LPT3
 
(o será "copy IMPRESION.ZPL LPT3:"; ¿lo pruebas? quizá "copy IMPRESION.ZPL LPT3.DOS")
 
Esto desde un acceso directo en el escritorio, es decir que ésto lo hago externo a mi app en VFP (pero tú podrías dentro de ula app hacer un RUN o mejor un createobject("Wscriptshell")----no recuerdo la sintaxis exacta--perdón, o WinExec o ShellExec----).
 
Chao.
 
HERNAN CANO MARTINEZ
Analista de Sistemas - Programador
 
 

Jairo Miranda

unread,
Jun 13, 2013, 2:38:36 PM6/13/13
to publice...@googlegroups.com

Les cueto que me sucedió a mi..

 

La empresa compro 6 equipos Dell Vostro  con windows 8 pro 64 BITS!!!   Que cosa para impresoras  Genericas de 9 pin.. (aun tenemos una aplicación en foxpro 2.0 inmaginense!!! , bien

Que hice:

 

Coloque en una maquina dell  Ispiron  x86 con Windows Xp profesional  tres tarjetas LPT1  mas la que trae por defecto.  Lpt1, lpt2, lpt3 lpt4 como si fuera un Print Server.  , instale las impresoras cada una en un puerto lpt.  Las instale cada una en Windows XP (ha no existe controlador para ellas de 64 bits) ..  la maquina esta en red con la IP 192.168.0.13  . 

Las impresoras les instale un acceso compartido  con el nombre  ventas, trafico, nomina, compras ( de solo máximo 8 letras )  asi que quedan como recurso compartido

 

\\192.168.0.13\ventas

\\192.168.0.13\trafico

\\192.168.0.13\compras

\\192.168.0.13\nomina

Etc

 

Instale en cada maquina de Windows 8 de 64b bits  una licencia de  VMWARE  y instale en la unidad virtual  una licencia de XP profesional.  Donde correrá las aplicaciones FOXPRO DOS.

En el inicio del de   .BAT de programa.

 

Le dije a cada maquina

 

Net use lpt1  \\192.168.0.13\ventas

Net use lpt1   \\192.168.0.13\trafico

Net use lpt1   \\192.168.0.13\compras

Net use lpt1   \\192.168.0.13\nomina

 

Realmente fue un paso de casi una semana trabajando y probando..

 

JM

Luis la Romana

unread,
Jun 14, 2013, 6:51:28 PM6/14/13
to publice...@googlegroups.com
Yo tengo una Zebra y para imprimir viñetas por lotes creo la viñeta con el DesignerPro, el cual te permite abrir una tabla DBF asociada a la viñeta. En un campo de esa tabla podés indicar cuántas viñetas necesitas del respectivo código.
Si necesitas el Designer Pro te lo paso ocupa poco espacio.

Luis la Romana

unread,
Jun 14, 2013, 6:53:53 PM6/14/13
to publice...@googlegroups.com
Jairo, diste mucha vuelta, yo hubiera instalado Windows 7 de 32 quitando el de 64 porque la licencia es valida y el key es el mismo.

CRBV

unread,
Jun 19, 2013, 6:12:54 AM6/19/13
to publice...@googlegroups.com
Bueno les cuento como lo resolví, con el software que trae en el cd cree la etiqueta
con todos los datos y luego imprimí en un archivo esto genera todo el código EPL que es
parecido al ZPL eso lo tome desde el VFP y lo envío a imprimir, como lo hace Cesar,
solo que la impresora la instale por un puerto paralelo y así logre que funcione.
 
También en un principio intente con crear un label desde VFP y usar la clase Foxbarcode
pero no la pude hacer funcionar siempre me imprimía dos etiquetas y me daba error la
impresora que se quedaba sin papel, por eso tuve que buscar otra forma y es la que
conté anteriormente.
 
Muchas gracias por su ayuda y comentarios.
 
Saludos

Cesar Diaz

unread,
Jun 19, 2013, 7:02:45 AM6/19/13
to publice...@googlegroups.com
De todas formas en el codigo que envia solo faltaba los nombres de las impresora a la que lo envias, yo tengo 4 por USB (cambiado a controlador de texto), 3 en Lpt , y otras 4 en red (por CUPS y en UNC) y segun el usuario que imprima selecciono unas u otras y funciona de vicio lo que mas me costo y por no leer fue las conectadas a CUPS pues tengo varias delegaciones conectadas por internet sin VPN ni cosas raras


El miércoles, 12 de junio de 2013 18:57:18 UTC+2, CRBV escribió:

madel...@gmail.com

unread,
Jul 6, 2017, 9:24:59 AM7/6/17
to Comunidad de Visual Foxpro en Español
buen dia cesar, disculpa estoy disenando una etiqueta, ya logre imprimir el codigo de barras pero tambien me piden que la etiqueta lleve fecha juliana, me imprime la fecha pero en formato normal aaddmm y quieren que imprima en formato julian aaddd, queria saber si me puedes ayudar a hacer esto o me digas si hay alguna formula para cambiar la fecha a juliana

Rafael Carballo

unread,
Jul 9, 2017, 5:57:34 AM7/9/17
to Comunidad de Visual Foxpro en Español
Hola Carlos.

Esto lo solvente de esta manera :

1. crea una impresora genérica en la pc que contiene la impresora zebra y direccionala a usb, ademas compartirla
2.Crear un archivo bat por lote para enviar a imprimir la etiqueta
ejemplo: COPY C:\VINEPL\VINPRINT.TXT  \\CARBALLO-PC\GC420T
3. Genera desde el sistema el archivo vinprint.txt que tiene el diseño de la etiqueta
Ejemplo:
S2
D7
ZB
N
S2
A45,5,0,3,1,2,N,"TITULO DE LA EMPRESA S.A."
A45,40,0,2,1,1,N,"CPU DELL OPTIPLEX TECLADO,MOUS"
A45,60,0,2,1,1,N,"E MONITOR 9020"
A45,80,0,3,1,1,N,"96301 CONTRALORIA"
A45,100,0,2,1,1,N,"FISICO AL 30/11/2016"
A315,140,0,1,1,1,N,""
B55,120,0,1,2,7,35,B,"1621"
A465,5,0,3,1,2,N,"TITULO DE LA EMPRESA S.A."
A465,40,0,2,1,1,N,"ESCRITORIO GRIS DE 5 GAVETAS"
A465,60,0,2,1,1,N,""
A465,80,0,3,1,1,N,"96301 CONTRALORIA"
A465,100,0,2,1,1,N,"FISICO AL 30/11/2016"
A705,140,0,1,1,1,N,""
B465,120,0,1,2,7,35,B,"196301008"
P1
FE
4. Por ultimo ejecuta desde tu sistema el archivo bat y este enviara la impresion al zebra
Te dejo el codigo que aplico para enviar la etiqueta al txt y luego ejecutar el bat.

** Esta rutina es de generar dos etiquetas por cada fila porque envió de 2x1 pultadas dos filas y tomo codigo por codigo del usuario para no desperdiciar etiquetas en blanco.

*** Definiendo el reporte a utilizar
IF MESSAGEBOX("ESTA SEGURO(A) DE GENERAR LAS VIÑETAS DE ESTE ARCHIVO",32+256+4,"CONFIRME")=6

CREATE CURSOR VINETAS (CODIGO1 C(15),CODIGO2 C(15),;
NOMBRE1 C(60),NOMBRE2 C(60),MEDIDA1 C(15),MEDIDA2 C(15))

CREATE CURSOR temp1 (codprod c(15),nomprod c(40))
SELECT temp1
total1=thisform.list1.ListCount  
FOR i=1 TO total1
cod=thisform.list1.ListItem(i) 
SELECT producto
LOCATE FOR codprod=cod 
IF EOF()
MESSAGEBOX("Articulo No.:"+cod+" no existe",64,"Vifique")
loop
ELSE
nomprod1=producto.nomprod
SELECT temp1
APPEND BLANK 
REPLACE NEXT 1 codprod WITH cod,nomprod WITH nomprod1
ENDIF
endfor

SELEC TEMP1
GO TOP
IF EOF()
MESSAGEBOX("No ha registrado ningun producto",64,"Incorrecto")
retur(.f.)
endif
SCAN
cod=codprod
nom1=SUBSTR(nomprod,1,25)
med1=SUBSTR(nomprod,26,25)
FOR I=1 TO 1
INSERT INTO VINETAS (CODIGO1,NOMBRE1,MEDIDA1) VALUE (cod,nom1,med1)
ENDFOR
SELEC TEMP1
ENDSCAN
SELEC * FROM VINETAS INTO CURSOR VINETAS1
SELEC VINETAS
DELETE ALL
SELEC VINETAS1
i=0
SCAN
I=I+1
cod=codigo1
nom1=nombre1
med1=medida1
SELEC VINETAS
IF MOD(I,2)=1
APPE BLANK
replace NEXT 1 codigo1 WITH cod,nombre1 WITH nom1,medida1 WITH med1
ELSE
REPLA NEXT 1 CODIGO2 WITH cod,NOMBRE2 WITH nom1,MEDIDA2 WITH med1
ENDIF
SELEC VINETAS1
ENDSCAN
archivov="C:\vinepl\VINPRINT.TXT"
if file(archivov) 
erase &archivov
endif
IF FILE(archivov)  && ¿Existe el archivo?
    genarchivo = FOPEN(archivov,12)     && Si existe, lo abre como lectura y escritura.
ELSE
    genarchivo = FCREATE(archivov)  && De lo contrario, lo crea.
ENDIF
IF genarchivo < 0     && Comprueba si hay error al abrir el archivo.
    =messagebox("No se puede abrir o crear el archivo "+chr(13)+;
 "Que genera la viñeta",32,"Error")
ELSE  && Si no hay error, escribe en el archivo.
SELEC VINETAS
GO TOP
SCAN
SCATTER MEMVAR
VNOMPROD1=["]+ALLTRIM(M.NOMBRE1)+["]
VMEDIDA1=["]+ALLTRIM(M.MEDIDA1)+["]
VCODPROD1=["]+ALLTRIM(M.CODIGO1)+["]
VNOMPROD2=["]+ALLTRIM(M.NOMBRE2)+["]
VMEDIDA2=["]+ALLTRIM(M.MEDIDA2)+["]
VCODPROD2=["]+ALLTRIM(M.CODIGO2)+["]
VEMPRESA=["]+ALLTRIM(M.V_EMPRESA)+["]
IF EMPTY(CODIGO2)
DIMENSION VINETA2(11)
VINETA2(1)="S2"
VINETA2(2)="D7"
VINETA2(3)="ZB"
VINETA2(4)="N"
VINETA2(5)="S2"
VINETA2(6)="A20,10,0,4,1,1,B,"+VEMPRESA
VINETA2(7)="A20,50,0,3,1,1,N,"+VNOMPROD1
VINETA2(8)="A20,70,0,3,1,1,N,"+VMEDIDA1
VINETA2(9)="B50,100,0,1,2,7,50,B,"+VCODPROD1
VINETA2(10)="P1"
VINETA2(11)="FE"
FOR S=1 TO 11
=FPUTS(genarchivo,VINETA2(S))
ENDFOR
ELSE
DIMENSION VINETA1(15)
VINETA1(1)="S2"
VINETA1(2)="D7"
VINETA1(3)="ZB"
VINETA1(4)="N"
VINETA1(5)="S2"
VINETA1(6)="A20,10,0,4,1,1,B,"+VEMPRESA
VINETA1(7)="A20,50,0,3,1,1,N,"+VNOMPROD1
VINETA1(8)="A20,70,0,3,1,1,N,"+VMEDIDA1
VINETA1(9)="B50,100,0,1,2,7,50,B,"+VCODPROD1
VINETA1(10)="A480,10,0,4,1,1,B,"+VEMPRESA
VINETA1(11)="A480,50,0,3,1,1,N,"+VNOMPROD2
VINETA1(12)="A480,70,0,3,1,1,N,"+VMEDIDA2
VINETA1(13)="B500,100,0,1,2,7,50,B,"+VCODPROD2
VINETA1(14)="P1"
VINETA1(15)="FE"
FOR I=1 TO 15
=FPUTS(genarchivo,VINETA1(I))
ENDFOR
ENDIF
SELEC VINETAS
ENDSCAN
=FCLOSE(genarchivo)     && Cierra el archivo.

if file(archivov)
PDESTINO=filetostr("c:\VINEPL\PRINTER.TXT")
IF UPPER(PDESTINO)="LPT1"
!C:\VINEPL\VINPRINT.BAT
ELSE
COPY FILE C:\VINEPL\VINPRINT.TXT TO &PDESTINO
ENDIF
IF MESSAGEBOX("Ha finalizado la impresión de viñetas"+CHR(13)+;
"Desea borrar datos registrados",32+256+4,"Confirme")=6
thisform.list1.Clear 
thisform.txtcodigo.SetFocus 
endif
endif

ENDIF
ENDIF

Joel Barreiro

unread,
Jun 27, 2018, 9:50:26 PM6/27/18
to Comunidad de Visual Foxpro en Español
Buenos dias, tengo una etiqueta para gabeta en la que quiero imprimir unicamente 2 campos

uno de texto y el otro un codigo de barra, la etiqueta mide 20,9 x 3,8 ctms, para una impresora zebra GC420t

Necesito me ayuden proporcionando el codigo txt

Pueden darme una mano con esto, si tiene un costo por favor dime cuanto

Gracias

Oscar Bonet

unread,
Jun 27, 2018, 11:40:46 PM6/27/18
to publice...@googlegroups.com
has un reporte normal solo que sea con las dimensiones que indicas.   Y para el codigo de barras usas las funciones que hay en portalfox en google group de foxpro para ello (hay varias opciones).

_________________
Oscar

Enrique Martinez

unread,
Jun 28, 2018, 8:43:28 AM6/28/18
to publice...@googlegroups.com
Ya probaste con el set date to

Saludos

Enrique Martínez 

gustavo rincon

unread,
Jul 31, 2018, 5:12:30 PM7/31/18
to Comunidad de Visual Foxpro en Español
buenas tardes alguien me puede ayudar  con la impresora rw420 Zebra  estoy haciendo facturacion en sitio con papel en blanco me sale bien el formato pero con papel pre impreso   se imprime la primera pero despues hace un salto y no imprime las siguientes
Reply all
Reply to author
Forward
0 new messages