Girar texto em ZPL: o comando que funciona e o que não faz nada
^FW parece ser o comando de rotação e é ignorado na conversão. Quem gira é a letra dentro do ^A0, e a diferença entre os dois custa uma tarde a quem não sabe.
A rotação mora dentro do comando de fonte
Em ZPL, cada campo carrega a própria orientação, e ela é a primeira letra depois do comando de fonte. ^A0N desenha normal; ^A0R gira 90 graus.
^XA
^FO40,40^A0R,50,50^FDgirado^FS
^XZEssa etiqueta sai com o texto de lado, lendo de cima para baixo. Conferimos as quatro letras na imagem, contra o renderizador que o EasyZPL usa:
| Letra | Efeito |
|---|---|
| N | Normal, da esquerda para a direita. |
| R | Gira 90 graus no sentido horário. |
| I | Gira 180 graus: o texto sai de cabeça para baixo. |
| B | Gira 270 graus: o texto lê de baixo para cima. |
A mesma letra vale para código de barras: ^BCR gira o Code 128 do mesmo jeito que ^A0R gira o texto.
^FW não faz nada aqui
^FW existe para definir uma orientação padrão que valeria para todos os campos seguintes, poupando a letra em cada um. É o comando que aparece em toda busca por "girar etiqueta ZPL".
Na conversão ele é ignorado. Renderizamos ^FWR seguido de um campo ^A0N e o mesmo campo sem o ^FWR: a saída é idêntica byte a byte, texto reto nos dois casos.
Se você escreveu ^FWR esperando girar a etiqueta e nada aconteceu, não é erro seu nem defeito do arquivo. A saída é pôr a letra em cada campo: o que^FW faria em uma linha, ^A0R faz em cada campo, e isso funciona.
Girar a etiqueta inteira é outra coisa
Existe diferença entre girar o conteúdo e girar a página. Girar todos os campos com ^A0R mantém a página em pé, com o texto deitado dentro dela. É quase sempre o que se quer para uma etiqueta que sai do rolo de lado.
Se o que você quer é uma página deitada, com 152 mm de largura por 101 mm de altura, o caminho não é o arquivo: é trocar largura por altura nos campos da tela. A conversão gera a página no tamanho que você pedir, e inverter os dois números gira a página inteira sem tocar em nenhum comando.
^PO, que na impressora inverteria a etiqueta em 180 graus, também é ignorado, e testamos inclusive ^POI. O guia sobre comandos ignorados lista todos os que estão nessa categoria.
A posição não gira junto com o texto
A armadilha que sobra: girar o texto não gira o ^FO. A posição continua contando da mesma origem, no canto superior esquerdo, e o texto girado cresce numa direção diferente a partir dali.
Consequência prática: um campo que cabia a partir de ^FO40,40 na horizontal pode passar da borda de baixo quando girado, porque o comprimento que antes ocupava a largura agora ocupa a altura. Numa etiqueta de 10 × 15 cm isso sobra; numa de 5 × 3 cm, não.
O jeito de conferir é o de sempre: converta uma e olhe. Texto que sai pela borda não avisa, ele só some, como todo conteúdo posicionado fora da área da etiqueta.