¿Qué es el archivo ZPL?
ZPL son las siglas de Zebra Programming Language. Permite al equipo crear el diseño de impresión deseado para cualquier etiqueta o página.
Esto hace que la etiqueta sea independiente del dispositivo de impresión específico. La impresora recibe comandos para producir formas, marcos, símbolos y otras cosas, y ella misma sabe cómo hacerlo. ¡Esta es la diferencia clave de ZPL!
Zebra Technologies inventó originalmente ZPL para crear e imprimir etiquetas (con códigos de barras, gráficos y cualquier texto) que se utilizan principalmente para actividades comerciales.
Brevemente sobre los pasos para crear una ZPL:
Primero, los datos se envían a la impresora utilizando el equipo (PC o terminales que recopilan la información), luego el procesador de la impresora Zebra procesa la información recibida e imprime el resultado.
Brevemente sobre cómo escribir código ZPL:
Las medidas para imprimir se hacen en puntos, porque sin un valor exacto será bastante difícil hacer algo sin recibir errores. Debe estudiar la documentación del equipo de impresión y averiguar cuál es su densidad de píxeles (DPI).
El diseño en sí se crea con los siguientes comandos:
1. El código debe comenzar con la etiqueta ^ XA y terminar con ^ XZ;
2. Pero la etiqueta ^ FX precede a los comentarios;
3. ^ CF x, y, z - configuración de fuente predeterminada: la fuente, su altura y ancho;
4. ^ FO x, y - sangría izquierda y superior;
5. ^ FS - fin de línea;
6. Puede mostrar los datos con los valores ajustados de la siguiente manera:
FD <texto>
Bloque de texto:
FB <ancho>, <número de líneas>, <espacios entre líneas>, <alineación del texto>, <sangría para la segunda línea o la siguiente>
<posición del texto>:
L - alineado a la izquierda,
R - alineado a la derecha,
C - en el centro,
J: alinea el texto de acuerdo con el ancho del campo;
Creando rectángulos:
GB <ancho>, <alto>, <grosor de línea>, <color de línea>, <redondeo de esquinas>
Color de línea: B (negro) o W (blanco)
El redondeo de las esquinas se indica con un valor de 0 a 8.
7. Código de barras (tanto ZPL como impresora Zebra, creado directamente para códigos de barras) que consta de tres comandos:
dimensiones del código de barras (POR <ancho>, <relación de espesor de línea>, <altura del código de barras>);
su configuración:
BC <orientación>,
<altura del código de barras en puntos>,
<si imprimir el descifrado del código>,
<decodificación de códigos de barras>,
<modo> <orientación> - N - orientación normal;
R - 90 grados en el sentido de las agujas del reloj;
I - 180 grados;
B - 270 grados;
<si imprimir el descifrado del código>,
<decodificación del código sobre el código de barras> - valores Y (sí) o N (no);
<modo> - predeterminado N.
8. La salida del código de barras para imprimir se realiza mediante el comando FD <information>.
De hecho, no todo es tan simple, pero da una idea general del lenguaje ZPL.
Creación de un ZPL en Delphi / C ++ Builder / Lazarus
Entonces, ¿es posible enviar solo una imagen ordinaria o un documento "creado para ajustarse a la etiqueta" desde un editor de texto? ¿Podemos simplemente "dibujar en Canvas, enviar a la impresora" y dejar que el controlador lo averigüe por sí mismo? Sí, puede enviarlo, se imprimirá y, a menudo, se verá como uno real. El único problema es que las impresoras ZPL y Zebra están diseñadas principalmente para crear etiquetas a escala vectorial legibles por máquina y, a menudo, el resultado, debido a los pasos de rasterización y escala de imagen en el programa / controlador, no será legible por el escáner de código de barras. Si el escáner no reconoce sus códigos de barras, por lo general, tiene un problema con una imagen rasterizada y escalada. ¡Así que creemos un ZPL desde nuestra aplicación Delphi o Lazarus correctamente!
Usaremos la plataforma FastReport VCL, ya que guarda desde Delphi inmediatamente al formato requerido (Zebra Programming Language). Pero podemos usar más posibilidades: agregue imágenes, tablas, códigos de barras (¡y estos serán códigos de barras correctos y legibles por máquina!). Está claro que no tiene sentido enviar fotos de paisajes a una "impresora cebra", sino una imagen como la que está al principio del artículo, ¿por qué no?, ¡si es apropiado en nuestras etiquetas!)
Hay dos opciones para guardar el informe generado. El primero es guardar a través de la ventana de vista previa y el segundo es directamente a través del código Pascal.
Consideremos ambas opciones.
¡Ponte a trabajar! No solo agregamos los componentes de formulario que necesitamos para crear un informe y conectar fuentes de datos, ¡sino también un componente para la exportación ZPL!
Guardar un ZPL de Delphi / RAD Studio Lazarus desde la vista previa
La ventaja de este método es que vemos lo que estamos guardando, tenemos la oportunidad de comparar la vista previa con el resultado en ZPL. Y lo depuramos en nuestra computadora (en lugar de usar el equipo de nuestra desafortunada víctima) cuando el proyecto parece estar listo.
Cree el documento.
Antes de guardar, mírelo en la ventana de vista previa, edita todo lo que no le guste.
Haga clic en el botón "Guardar".
Elije "archivo ZPL". Estoy escribiendo este artículo con casi todos los filtros de exportación conectados. En su caso (si SOLO tiene conectado el filtro de exportación ZPL) no habrá ningún otro elemento (excepto Informe preparado) en este menú.
Aparecerá la ventana Exportar configuración. Configure todo lo que necesitemos y haga clic en “Aceptar”.
Más sobre la configuración:
Rango de páginas: rango de páginas para guardar;
Exportar configuración:
- Imprimir como mapa de bits: imprima como una imagen de matriz (NO HAGA esto para códigos de barras);
- Líneas de ruptura - líneas discontinuas;
- Resolución (ppp) - resolución de 152 a 600 ppp (de hecho, hay un conjunto de valores preestablecidos, formatos limitados - podemos seleccionarlos - se enumeran a continuación en el código);
Guardar en: guardar como un archivo en una PC, enviar por correo o al almacenamiento en la nube;
Abrir después de exportar - abrir después de guardar.
Guardar un ZPL desde el código Delphi / C ++ Builder / Lazarus
Exportación a ZPL: | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
procedure TForm1.Button18Click(Sender: TObject); begin {Generate a report. The report must be generated before exporting} frxReport1.PrepareReport(); {Set the range of pages to export. By default, all pages of the generated report are exported} frxZPLExport1.PageNumbers := '2-3'; {Set whether to export the report as an image} frxZPLExport1.PrintAsBitmap := True; {Set whether a sequence of end-of-line characters is needed at the end of each line} frxZPLExport1.BreakLines := True; {Set resolution. Possible values: d6_dpmm_152_dpi, d8_dpmm_203_dpi, d12_dpmm_300_dpi, d24_dpmm_600_dpi, test1to1} frxZPLExport1.ZplDensity := d6_dpmm_152_dpi; {Set whether to open the resulting file after export} frxZPLExport1.OpenAfterExport := False; {Set whether to display export progress (show which page is currently being exported)} frxZPLExport1.ShowProgress := False; {Set whether to display the export filter settings dialog box} frxZPLExport1.ShowDialog := False; {Set the name of the resulting file.} {Please note that if you do not set the file name and disable the export filter dialog box,} {the file name selection dialog will still be displayed} frxZPLExport1.FileName := 'C:\Output\test.zpl'; {Export the report} frxReport1.Export(frxZPLExport1); end; |
Como puede ver, crear e imprimir etiquetas Zebra desde Delphi (en aplicaciones de Windows) y desde Lazarus (aplicación de Linux) es bastante simple. Este método se utiliza en miles de puntos de venta en todo el mundo.