O endereço cortou na borda da etiqueta: ^FB e a quebra de linha
ZPL não quebra linha sozinho. Texto que não cabe na largura simplesmente sai pela borda e some. O comando que resolve tem uma letra de diferença do que quase todo mundo usa.
O que acontece sem quebra de linha
Um campo de texto comum desenha numa linha só, da posição que o ^FO deu até onde o texto acabar. Se acabar depois da borda da etiqueta, o que passou da borda não existe.
^XA
^FO40,40^A0N,36,36^FDRua das Flores 1234 apartamento 56 bairro Centro Sao Paulo SP^FS
^XZRenderizamos essa etiqueta: ela sai com "Rua das Flores 1234 apartamento 56 bairro Centro S" e para aí, no meio da palavra, exatamente onde a borda passa.
Não há aviso. A conversão termina com sucesso, o PDF abre, e a diferença só aparece quando alguém lê o endereço. É o mesmo tipo de defeito silencioso do conteúdo posicionado fora da área, e a causa é a mesma: ZPL desenha onde mandam, sem opinar.
^FB é o comando que quebra a linha
^FB declara um bloco: uma largura em pontos, dentro da qual o texto se dobra sozinho. Ele vem antes do ^FD e vale só para o campo seguinte.
^FO40,40^A0N,36,36^FB700,6,0,L
^FDRua das Flores 1234 apartamento 56^FSCom ^FB, o mesmo endereço do exemplo anterior sai em duas linhas, inteiro. Testamos as duas versões lado a lado.
Os quatro valores, na ordem:
- 700: a largura do bloco, em pontos. É o número que decide onde a linha dobra.
- 6: o máximo de linhas.
- 0: espaço extra entre as linhas.
- L: alinhamento. L é à esquerda, C centralizado, R à direita, J justificado.
A largura é em pontos, e é onde todo mundo erra
O 700 do exemplo não são 700 milímetros nem 70% da etiqueta: são 700 pontos. Numa etiqueta de 101,6 mm de largura a 8 pontos por milímetro, a etiqueta inteira tem 813 pontos. Um bloco de 700 deixa margem, e um de 900 não dobra nunca, porque nenhuma linha chega a 900 antes de sair da etiqueta.
A conta para escolher o número: largura útil em mm × pontos por mm. Se a etiqueta tem 100 mm e você quer 5 mm de margem de cada lado a 8 pontos por mm, o bloco é (100 − 10) × 8 = 720.
Se você não sabe quantos pontos por milímetro o seu arquivo usa, o guia sobre 203, 300 e 600 dpi explica como descobrir em trinta segundos, olhando o maior número do arquivo.
^FO e ^FT ancoram de formas diferentes
Os dois posicionam, e a diferença aparece quando você alinha textos de tamanhos diferentes lado a lado. ^FO conta do topo do texto; ^FT conta da linha de base, que é onde as letras se apoiam.
Consequência prática: com ^FO, um texto de 30 pontos e um de 60 postos no mesmo y ficam desalinhados embaixo, porque o de 60 desce mais. Com ^FT, os dois se apoiam na mesma linha, que é o que o olho espera.
Nenhum dos dois é mais correto. ^FO é mais simples de calcular e serve para a maior parte da etiqueta; ^FT resolve a linha onde convivem tamanhos diferentes.
Como conferir antes de imprimir mil
Converta uma etiqueta só, com o endereço mais longo que você tem, e olhe o PDF. O endereço longo é o teste: se ele couber, os curtos cabem. Testar com "Rua A, 10" não prova nada.
Se estiver montando o arquivo você mesmo, vale deixar o ^FB em todo campo de endereço, mesmo nos curtos. Custa uma linha e elimina a classe inteira de defeito.