Conversão de linguagens de impressora
Converter IPL para ZPL: migrar formatos de etiqueta Intermec para impressoras Zebra
Como o modelo formato/dados do IPL da Intermec difere do ZPL, como formatos armazenados e dados de campo viram um único trabalho ZPL, exemplo resolvido e lista de verificação para aposentar PM4i, PX4i e 3400.
As impressoras Intermec (PM4i, PX4i/PX6i, séries 3400/4400) foram por anos os burros de carga da manufatura e da distribuição, e o IPL não se parece com nada: o layout da etiqueta é um formato armazenado definido uma vez, e cada trabalho de impressão só envia os dados dos seus campos. Quando essas impressoras são aposentadas em favor da Zebra, as duas metades — o formato na impressora e o fluxo de dados no ERP — precisam ser combinadas em trabalhos ZPL autocontidos.
Como os dois modelos diferem
| Conceito | IPL (Intermec) | ZPL (Zebra) |
|---|---|---|
| Layout | Formato armazenado: <STX><ESC>P;E1;F1;… campos …;R;<ETX> | Inline em cada trabalho entre ^XA e ^XZ (ou armazenado com ^DF / chamado com ^XF) |
| Campo de texto | H0;o100,100;f0;c20;h2;w2;d0,30 (campo, origem, fonte, altura/largura, comprimento dos dados) | ^FO100,100 ^A0N,36,36 ^FN1 ^FS |
| Campo de código | B1;o100,300;c6;h60;w2;d0,20 (c6 = Code 128) | ^FO100,300 ^BY2 ^BCN,60,Y,N,N ^FN2 ^FS |
| Impressão com dados | <STX><ESC>E1<ETX> <STX><CAN><ETX> <STX>dados1<CR>dados2<CR><ETX> <STX><ETB><ETX> | ^XA ^XFFORMAT ^FN1^FDdados1^FS ^FN2^FDdados2^FS ^XZ |
| Unidades | pontos (alguns modelos 1/100 in) | pontos |
O que realmente muda
- Você precisa dos dois artefatos: a definição do formato (muitas vezes carregada na impressora anos atrás e nunca guardada em outro lugar) e um fluxo de dados de amostra. Leia o formato de volta da impressora com o comando de upload antes de desativá-la.
- A ordem dos campos é posicional: as linhas de dados são casadas com os campos por sequência, então o trabalho ZPL precisa atribuir números ^FN na mesma ordem em que o ERP envia os valores.
- Fontes: os códigos de fonte IPL (f0–f7 bitmap, f20+ contorno) mapeiam para ^A0 pelo tamanho medido; os multiplicadores de altura/largura do IPL são inteiros.
- Códigos: c0 Code 39, c1 Code 93, c2 Interleaved 2 of 5, c5 UPC/EAN, c6 Code 128, c8 PDF417 (varia por modelo) → o comando ^B correspondente.
- Caracteres de controle: trabalhos IPL são delimitados por STX/ETX e usam CR entre campos; eles precisam ser removidos, não traduzidos.
Antes e depois (simplificado)
<STX><ESC>P;E1;F1;<ETX> <STX>H0;o40,30;f0;c20;h3;w3;d0,30;<ETX> <STX>B1;o40,130;c6;h90;w2;d0,20;<ETX> <STX>R;<ETX> <STX><ESC>E1<ETX><STX><CAN><ETX> <STX>Safety Harness<CR>7501234567893<CR><ETX> <STX><ETB><ETX>
^XA ^PW812 ^LL609 ^FO40,30 ^A0N,36,36 ^FDSafety Harness^FS ^FO40,130 ^BY2 ^BCN,90,Y,N,N ^FD7501234567893^FS ^PQ1 ^XZ
Lista de verificação de migração
- Exportar todo formato armazenado de toda impressora Intermec antes de desligá-la; costuma ser a única cópia.
- Parear cada formato com um fluxo de dados capturado para saber quais campos são variáveis e em que ordem.
- Decidir se mantém a separação formato/dados em ZPL (^DF/^XF com ^FN) para que a integração com o ERP mal mude, ou se passa a trabalhos totalmente inline.
- Avaliar os códigos na Zebra; as cabeças Intermec e Zebra diferem no ganho de ponto.
Como o EtikStudio faz
Importe o formato IPL e um fluxo de dados de amostra juntos; o interpretador os funde em um design visual com os campos de dados marcados como variáveis na ordem do ERP. A partir daí, exporte ZPL como trabalhos inline ou como formato ^DF armazenado com campos ^FN, o que mantiver sua integração mais simples.
Os exemplos de comandos são simplificados para clareza; a sintaxe exata varia por modelo e firmware. Sempre teste na impressora de destino.