Os parâmetros, e o truque da linha
A forma é ^GBl,a,e,c,r: largura, altura, espessura do traço, cor e arredondamento. O ^FO antes dele decide onde o canto superior esquerdo fica, como em qualquer campo.
A linha é o mesmo comando com um lado zerado: ^GB420,0,3 desenha uma linha horizontal de 420 pontos com 3 de espessura, e ^GB0,300,3 desenha uma vertical. Não existe comando separado de linha — essa é a forma idiomática.
- l — largura em pontos.
- a — altura em pontos. Zero em um dos dois faz uma linha.
- e — espessura do traço, em pontos. O padrão é 1.
- c — cor: B preto ou W branco.
- r — arredondamento dos cantos, de 0 a 8.
Por que a caixa saiu toda preta
Quando a espessura do traço chega ao tamanho da caixa, o retângulo é preenchido. ^GB300,80,80 é uma caixa de 300 por 80 com traço de 80 pontos — ou seja, uma tarja sólida. Isso não é bug, é como se faz um bloco preenchido em ZPL.
Se você queria só a moldura e saiu tudo preto, o terceiro parâmetro está grande demais. Uma espessura de 3 a 5 pontos é o normal para uma moldura visível numa etiqueta a 203 dpi.
A tarja com texto branco
O padrão é sempre o mesmo: desenhe a caixa preenchida com ^GB, depois posicione o texto por cima e marque o campo com ^FR. O ^FR inverte só aquele campo, então o texto sai branco sobre o preto que já estava lá.
Se em vez do ^FR você usar ^LR, a inversão passa a valer para todos os campos seguintes e não só para um — é a causa de uma etiqueta que fica invertida da metade para baixo.