ZPL pode ser interpretado como Zebra Programming Language. Ele permite que sua equipe crie o design de impressão desejado para qualquer etiqueta ou página.
Isso torna a etiqueta independente do dispositivo de impressão específico. A impressora recebe comandos para produzir formas, molduras, símbolos e outras coisas, e ela mesma sabe como fazê-lo. Esta é a principal diferença do ZPL!
Zebra Technologies originalmente inventou o ZPL para criar e imprimir etiquetas (com códigos de barras, gráficos e qualquer texto) que são usados principalmente para fins comerciais.
Primeiro, os dados são enviados para a impressora usando o equipamento (PCs ou terminais que coletam as informações), então o processador da impressora Zebra processa as informações recebidas e imprime o resultado.
As medições para impressão são feitas em pontos, pois sem um valor exato será muito difícil fazer algo sem receber erros e falhas. Você deve estudar a documentação do equipamento de impressão e descobrir qual é sua densidade de pixels (DPI).
O design em si é criado com os seguintes comandos:
1. O código precisa começar com ^ XA tag, e terminar com ^ XZ;
2. A tag ^ FX precede comentários;
3. ^ CF x, y, z – configurando fontes padrão: fonte, valores para alturae largura;
4. ^ FO x, y – recuos esquerdo e superior;
5. ^ FS – final da linha;
6. Você pode exibir os dados com os valores ajustados da seguinte forma:
FD <texto>
Bloco de texto:
FB <largura>, <número de linhas>, <espaço entre linhas>, <alinhamento do texto>, <recuo para a segunda linha ou próximas>
<posição do texto>:
L – alinhado à esquerda,
R – alinhado à direita,
C - centralizado,
J – alinha o texto na largura do campo;
Criando retângulos:
GB <largura>, <altura>, <espessura da linha>, <cor da linha>, <arredondamento de quinas>
Cor da linha: B (black) or W (white)
O arredondamento das quinas é indicado por um valor entre 0 e 8.
7. Código de barras (tanto ZPL como Zebra-printer – são criados diretamento pelo código de barras!) consiste no uso de 3 comandos:
dimensões do código de barras (por <largura>, <proporçaõ da espessura da linha>, <altura do código de barras>);
as configurações:
BC <orientação>,
<largura do código de barras em pontos>,
<deve-se imprimir o código decodificado>,
<código de barras decodificado>,
<modo> <orientação> - N – orientação normal;
R - 90 graus sentido do relógio;
I - 180 graus;
B - 270 graus;
<deve-se mprimir o código decodificado>,
<decodificação do código acima do código de barras> - valores Y (sim) ou N (não);
<modo> - padrão N.
8. A saída do código de barras para impressão é realizada através do comando FD <informação>.
Na verdade, nem tudo é tão simples assim, mas dá uma ideia geral da linguagem ZPL.
Então, é possível enviar apenas uma imagem comum, ou, um documento “criado para caber no rótulo” de um editor de texto? Podemos apenas “desenhar no Canvas, enviar para a impressora” e deixar o driver descobrir por si mesmo? Sim, você pode enviar, será impresso e, muitas vezes, parecerá real. O único problema é que as impressoras ZPL e Zebra são projetadas principalmente para criar etiquetas em escala vetorial legíveis por máquina e, muitas vezes, o resultado, devido às etapas de rasterização e escala de imagem no programa / driver, não será legível pelo leitor de código de barras. Se os seus códigos de barras não são reconhecidos pelo scanner, então, geralmente, você tem um problema com uma imagem rasterizada e redimensionada. Então, vamos criar um ZPL de nosso aplicativo Delphi ou Lazarus corretamente!
Usaremos a plataforma FastReport VCL, pois salva do Delphi imediatamente para o formato requerido (Zebra Programming Language). Mas podemos usar mais possibilidades - adicionar fotos, tabelas, códigos de barras (e esses serão códigos de barras corretos e legíveis por máquina!). É claro que não faz sentido enviar fotos de paisagens para uma “impressora-zebra”, mas sim uma imagem como a que está no início do artigo - por que não, se ela está adequada nas nossas etiquetas!)
Existem duas opções para salvar o relatório gerado. O primeiro é salvar através da janela de visualização e o segundo é diretamente através do código Pascal.
Vamos considerar as duas opções.
Ir trabalhar! Não adicionamos apenas os componentes de formulário de que precisamos para criar um relatório e conectar fontes de dados, mas também um componente para exportação ZPL!
A vantagem desse método é que vemos o que estamos salvando, temos a oportunidade de comparar a visualização com o resultado em ZPL. E nós o depuramos em nosso computador (em vez de usar o equipamento da nossa infeliz vítima) quando o projeto parece estar pronto.
Crie o documento.
Antes de salvar, visualize a jabela de preview, edite tudo que não gostou.
Clique no botão “Save”.
Escolha “ZPL file”. Estou escrevendo este artigo com quase todos os filtros de exportação conectados. No seu caso (se você tiver SOMENTE o filtro de exportação ZPL conectado), não haverá nenhum outro item (exceto Relatório Preparado) neste menu.
Page range – intervalo de páginas para salvar;
Configurações de exportação:
- Print As Bitmap - imprimir como uma imagem de matriz (NÃO faça isso para códigos de barras);
- Break lines - linhas quebradas;
- Resolution (dpi) - resolução de 152 a 600 dpi (na verdade existe um conjunto de valores pre-definidos, formatos limitados que podemos selecionar - estão listados abaixo no código);
Save to - salvar como um arquivo em um PC, enviar por e-mail ou para armazenamento em nuvem;
Open after export - abrir após salvar.
Export to ZPL: | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
procedure TForm1.Button18Click(Sender: TObject); begin {Gere um relatório. O relatório deve ser gerado antes de exportar} frxReport1.PrepareReport(); {Defina o intervalo de páginas a exportar. Por padrão, todas as páginas do relatório gerado são exportadas} frxZPLExport1.PageNumbers := '2-3'; {Defina se deseja exportar o relatório como uma imagem} frxZPLExport1.PrintAsBitmap := True; {Defina se uma sequência de caracteres de fim de linha é necessária no final de cada linha} frxZPLExport1.BreakLines := True; {Defina a resolução. Valores possíveis: d6_dpmm_152_dpi, d8_dpmm_203_dpi, d12_dpmm_300_dpi, d24_dpmm_600_dpi, test1to1} frxZPLExport1.ZplDensity := d6_dpmm_152_dpi; {Defina se deseja abrir o arquivo resultante após a exportação} frxZPLExport1.OpenAfterExport := False; {Defina se deseja exibir o progresso da exportação (mostrar qual página está sendo exportada no momento)} frxZPLExport1.ShowProgress := False; {Defina se deseja exibir a caixa de diálogo de configurações do filtro de exportação} frxZPLExport1.ShowDialog := False; {Defina o nome do arquivo resultante. Observe que se você não definir o nome do arquivo e desativar a caixa de diálogo do filtro de exportação, a caixa de diálogo de seleção do nome do arquivo ainda será exibida} frxZPLExport1.FileName := 'C:\Output\test.zpl'; {Exporte o relatório} frxReport1.Export(frxZPLExport1); end; |
Como você pode ver, criar e imprimir etiquetas Zebra à partir do Delphi (em aplicativos Windows) e do Lazarus (aplicativo Linux) é bastante simples. Este método é usado em milhões de pontos de venda em todo o mundo.