Conversión de lenguajes de impresora
Convertir DPL a ZPL: retirar impresoras Datamax-O'Neil en favor de Zebra
Cómo se corresponden las etiquetas DPL de Datamax basadas en registros con ZPL, las diferencias de unidades y estructura de registros, un ejemplo resuelto y una lista de verificación para sustituir impresoras I-Class y M-Class heredadas.
Las impresoras Datamax-O'Neil (hoy parte de Honeywell) operaron almacenes durante dos décadas, y sus trabajos DPL siguen enterrados en programas de impresión del ERP escritos cuando la I-Class era nueva. Cuando esas impresoras se sustituyen por Zebra ZT, los flujos DPL tienen que convertirse en ZPL. DPL es peculiar: en lugar de comandos con parámetros nombrados usa registros numéricos de ancho fijo, lo que lo hace compacto de enviar y penoso de leer.
Equivalencias de comandos
| Operación | DPL (Datamax-O'Neil) | ZPL (Zebra) |
|---|---|---|
| Inicio / fin | <STX>L … E (L abre el formato, E lo imprime) | ^XA … ^XZ |
| Unidades | <STX>n = pulgadas (1/100 in), <STX>m = métrico (1/10 mm) | puntos |
| Texto | Registro: rotación, fuente, ancho×, alto×, tamaño, fila, columna, datos → 1911A030050 0020Hola | ^FO40,30 ^A0N,36,36 ^FDHola^FS |
| Code 128 | Registro: rotación, simbología E, ancha, estrecha, alto, fila, columna, datos → 1E2209000650020datos | ^BY2 ^BCN,90,Y,N,N ^FDdatos^FS |
| Líneas / recuadros | Registro tipo X con l (línea) o b (recuadro) y dimensiones | ^GB300,2,2^FS |
| Copias | Q0005 dentro del formato | ^PQ5 |
| Oscuridad / velocidad | Registros H15 (calor) / P (velocidad) | ^MD10 ^PR4 |
Qué cambia realmente
- Unidades: las posiciones DPL van en centésimas de pulgada (o décimas de milímetro en modo métrico), no en puntos. La fila 0050 en modo pulgadas es 0.50 in = 101 puntos a 203 dpi. Cada coordenada debe convertirse, y el modo de la impresora (<STX>n o <STX>m) hay que leerlo primero o todo cae en el lugar equivocado.
- Orden fila/columna: los registros DPL ponen la fila (vertical) antes que la columna (horizontal); ^FO de ZPL es x y luego y. Intercambiarlos es el error de traducción más común.
- Fuentes: las fuentes internas DPL 0–8 son mapas de bits con multiplicadores enteros; la fuente 9 selecciona fuentes suaves (escalables) por un código como A03. Mapea los mapas de bits a ^A0 por altura medida.
- Códigos: DPL codifica la simbología como una sola letra (A Code 39, B UPC-A, E Code 128, F EAN-13, …) con dígitos de barra ancha y estrecha; ZPL usa comandos ^B más ^BY. La altura DPL va en el registro; la línea legible se elige con la letra de simbología en mayúscula/minúscula, no con una bandera.
- Gráficos: DPL descarga imágenes con <STX>I…; conviértelas una vez a ^GF o a gráficos almacenados ^DG.
Antes y después (simplificado)
<STX>n <STX>L D11 1911A030050 0020Safety Harness 1E2209000650020 7501234567893 Q0001 E
^XA ^PW812 ^LL609 ^FO40,101 ^A0N,36,36 ^FDSafety Harness^FS ^FO40,132 ^BY2 ^BCN,90,Y,N,N ^FD7501234567893^FS ^PQ1 ^XZ
Las filas 0050 y 0065 en centésimas de pulgada pasaron a 101 y 132 puntos; la columna 0020 pasó a x = 40. Los campos del registro se desempaquetaron en parámetros ZPL con nombre.
Lista de verificación
- Captura trabajos DPL reales del spool del ERP y no archivos de diseño antiguos — el spool es lo que realmente se imprimía.
- Confirma el modo de unidades y la resolución de la impresora original (I-Class de 203 o 300 dpi) antes de convertir coordenadas.
- Califica cada código en la Zebra: los dígitos de barra estrecha DPL no se mapean uno a uno con ^BY.
- Identifica qué campos de registro rellena dinámicamente el ERP; esos serán los campos variables de la plantilla nueva.
Cómo lo hace EtikStudio
El intérprete DPL lee el modo de unidades, desempaqueta cada registro en posición, fuente, tamaño y datos, y renderiza la etiqueta en milímetros. La exportación a un perfil Zebra produce ZPL con coordenadas convertidas y códigos reconstruidos; los campos que el ERP rellenaba se convierten en variables conectadas a los mismos datos.
Los ejemplos de comandos están simplificados por claridad; la sintaxis exacta varía según modelo y firmware. Prueba siempre en la impresora destino.