Modelos de etiqueta

Um arquivo de comandos de impressora da biblioteca Etiquetas: o nome e a codificação dele, o editor de comandos de impressora e a importação de arquivo, a gramática dos marcadores, a fila do Windows instalada e o envio de teste.

Ver como Markdown

Um modelo de etiqueta é uma linha da biblioteca Etiquetas (Process > Modelos de documento > Etiquetas): um arquivo de comandos de impressora (ZPL, EPL, CPCL ou qualquer outra linguagem de comandos RAW) com marcadores {{NAME}} onde um valor da execução pertence. O Ganter Lab envia os bytes para uma fila RAW do Windows e substitui os marcadores; ele nunca analisa, renderiza nem pré-visualiza a linguagem da impressora, então o layout em si é desenhado na ferramenta do fabricante da impressora. Editar exige Gerenciar o Process; a página inteira fica inerte enquanto uma unidade está em execução, e um envio de teste é recusado enquanto o runtime está parado. Um modelo novo nasce vazio, chamado "Etiqueta" ("Etiqueta 2", e assim por diante), e não imprime nada até ter comandos: todo caminho que renderiza ou envia recusa um modelo vazio.

A página são cinco cartões, na ordem em que o trabalho é feito: a identidade e a codificação, os comandos, os marcadores encontrados neles, como preparar um arquivo num designer, e o envio de teste.

Modelo

Campo O que é Valores / padrão Efeito
Nome O nome que a biblioteca e todo comando de etiqueta mostram. Texto; confirma quando o campo é deixado. Um nome vazio é recusado ("Um modelo de etiqueta precisa de um nome.") e o nome anterior fica.
Codificação Como os bytes guardados são lidos de volta como texto, e como todo valor substituído é codificado. UTF-8 (padrão), Latin-1, ASCII. Mudá-la reescreve os comandos editáveis na codificação nova; um caractere que a codificação nova não consegue representar é recusado ("Os comandos ficam em UTF-8. A linha 3 contém 'é', que o ASCII não consegue representar.") e a codificação fica. Comandos opacos mantêm os bytes deles e são simplesmente lidos de novo sob a declaração nova.

Comandos de impressora

Controle O que ele faz
O editor Um campo de texto monoespaçado com os comandos, com uma forma de ZPL como texto de exemplo. Digitar valida enquanto você vai (a lista de marcadores e qualquer recusa acompanham o texto); deixar o campo salva. Um rascunho recusado fica na tela com o motivo dele e não é salvo; abrir outro modelo o descarta. Salvar um texto idêntico aos bytes guardados não muda nada.
Importar arquivo… / Substituir arquivo… Traz um arquivo de comandos de impressora (.zpl, .epl, .epl2, .cpcl, .prn, .lbl, .txt). Os bytes são copiados para a configuração e o nome do arquivo é guardado para rastreabilidade: mover ou excluir o original não afeta o modelo. Um arquivo vazio e um arquivo acima de 2 MiB são recusados, e um arquivo com marcadores malformados também.

Os comandos são editáveis como texto apenas enquanto sobrevivem à ida e volta byte a byte: eles decodificam sob a codificação declarada, recodificam para os mesmos bytes, terminam toda linha do mesmo jeito (tudo LF ou tudo CR LF; um estilo CR LF importado é reposto a cada gravação) e não carregam caractere de controle além de tabulação e do fim de linha. Comandos que falham em qualquer um desses testes ficam opacos: o editor é substituído pelo motivo ("O byte 0x1B no deslocamento 12 não é texto UTF-8.", "Os fins de linha estão misturados: algumas linhas terminam com CR LF e outras só com LF.") e os bytes só mudam substituindo o arquivo. Uma frase sob o cartão diz o que está guardado: "Nada guardado ainda.", "Importado de labels.zpl · 1,2 KiB · os fins de linha CR LF são preservados" ou "Escrito aqui · 240 B".

Marcadores detectados

Os marcadores encontrados nos comandos guardados, na ordem da primeira ocorrência. Um marcador é um {{NAME}} ASCII estrito: o nome começa com A a Z, continua com A a Z, 0 a 9 ou sublinhado, tem no máximo 64 caracteres e fecha com }}. Qualquer coisa que abra com {{ e não siga a gramática é recusada com o deslocamento em bytes dela e a regra que ela quebrou ("Marcador de etiqueta malformado no deslocamento 40: o nome só pode conter A-Z, 0-9 ou sublinhado."). Todo byte fora de um marcador é preservado, e a substituição acontece uma vez e nunca recursivamente.

Um modelo sem comandos diz "Nenhum comando ainda. Escreva os comandos de impressora acima, ou importe um arquivo exportado de um designer de etiquetas. Até lá este modelo não imprime nada."; um modelo com comandos e sem marcadores diz "Nenhum marcador foi encontrado: esta etiqueta fixa envia os mesmos bytes toda vez e não usa dado nenhum da execução." e é um modelo válido. Cada marcador distinto precisa de uma origem em todo comando de etiqueta que usa o modelo; um marcador repetido recebe o mesmo valor. O cartão fecha com a regra fixa: o Ganter Lab valida a sintaxe dos marcadores, não os comandos do fabricante. Guarde apenas comandos em que você confia; eles podem mudar o comportamento da impressora.

Preparar um modelo num designer de etiquetas

Um lembrete recolhido do fluxo de trabalho:

  1. Crie o desenho da etiqueta na ferramenta do fabricante da impressora, como o ZebraDesigner.
  2. Ponha marcadores do Ganter Lab, como {{SERIAL}} ou {{RESULT}}, dentro do conteúdo de texto ou de código de barras.
  3. Exporte o arquivo de comandos pronto para a impressora, como ZPL. Não importe o arquivo de projeto do designer.
  4. Importe aquele arquivo aqui (ou cole o conteúdo dele no campo de comandos) e confira os marcadores detectados.
  5. Informe valores representativos abaixo e teste contra uma fila do Windows instalada.

O mesmo fluxo vale para EPL, CPCL e outras linguagens de comandos de impressora.

Envio de teste

Controle O que ele faz
Atualizar filas Relê as filas de impressão instaladas para o usuário interativo do Windows. Uma falha ao lê-las é dita ao lado do seletor.
Uma caixa de valor por marcador O texto de amostra substituído naquele marcador, somente neste envio. Um modelo fixo diz "Este modelo fixo não precisa de valores de amostra."; um vazio diz "Não há nada a enviar até este modelo ter comandos de impressora."
Fila do Windows instalada A fila para onde o teste vai ("(escolha uma fila)" ou "(nenhuma fila instalada)").
Enviar teste Renderiza os comandos guardados com os valores de amostra e os submete como um documento RAW chamado Ganter Lab test · <template>. Nenhuma execução e nenhum artefato é criado. O desfecho cai no feed de ações ("Etiqueta de teste enviada para 'Q'." ou "Falha no envio de teste: motivo").

Enviar teste fica cinza sem comandos guardados, sem fila escolhida, enquanto envia, e enquanto a página está inerte. Um valor que um marcador não consegue carregar na codificação declarada é recusado pelo renderizador. Sucesso significa que a fila do Windows aceitou o documento RAW; isso não confirma que uma etiqueta física foi impressa.

De onde vêm os valores

Os valores de amostra acima são só para o teste. Numa execução, todo marcador distinto do modelo é mapeado para uma origem finita no comando de etiqueta que o usa (Ações): os metadados congelados, o nome e a revisão do modelo, o nome e o código da unidade, o nome e o código do procedimento, o identificador da execução, o instante de partida, o estado da execução e, na Conclusão, também o instante de término, a duração, o veredito, o motivo do término e um resultado de critério nomeado, com um ciclo explícito. Origens de data e hora tomam um formato (data e hora da estação, data da estação, hora da estação, ISO 8601) e origens numéricas um número fixo opcional de casas decimais (0 a 9). Um número é escrito para a máquina que o lê, e não do jeito que a estação mostra números na tela: nunca um separador de grupo, que dentro de um código de barras quebra o sistema que recebe, sempre o ponto decimal invariante, e um número inteiro, como uma contagem ou uma duração em segundos, escrito inteiro. Um valor que contenha um caractere de controle, uma quebra de linha inclusive, ou um caractere que inicia um comando de impressora (^, ~) é recusado nomeando o marcador dele: ele partiria a linha em que está, ou imprimiria outra etiqueta. O que cada fronteira oferece, como o artefato é congelado e como um envio é gravado é Emitir etiquetas e relatórios; mapear um modelo à mão contra uma execução gravada é Etiquetas e relatórios.

O que esta página não faz

Ela não desenha prévia da etiqueta e não valida nada da linguagem da impressora. Ela não mapeia marcador nenhum para um valor: isso é trabalho do comando de etiqueta. Ela não imprime uma etiqueta para uma execução: os artefatos de uma execução são impressos pelo registro dela nos Históricos. E excluir o modelo (o Excluir modelo de etiqueta da barra) deixa todo artefato gravado intocado; só os comandos que ainda o nomeiam param de gerar.