Tudo saiu numa linha só, texto emendado
O sintoma mais comum de todos, e sempre a mesma causa: falta um ^FS. O ^FS fecha o campo atual, e sem ele o comando seguinte é lido como se ainda fosse conteúdo do campo anterior — então três campos de endereço viram um texto único e comprido.
Procure no seu arquivo um ^FD que não tenha um ^FS antes do próximo ^FO. É quase sempre um campo só, no meio, gerado por um sistema que esqueceu de fechar.
Acento e cedilha saem trocados
“Endereço” imprime como “Endereço”, ou aparece um caractere estranho no lugar do til. Falta um ^CI28 no começo da etiqueta, que é o comando que diz à impressora para interpretar os dados como UTF-8.
Some ^CI28 logo depois do ^XA e o problema desaparece. Se o sistema que gera o arquivo não consegue emitir UTF-8, a outra saída é o ^FH com os bytes escapados em hexadecimal.
O código de barras não passa no leitor
Se o código aparece bonito na tela e o leitor não lê, o suspeito número um não está no ZPL: é o “ajustar à página” do diálogo de impressão. Ele reescala a etiqueta em alguns por cento, e alguns por cento são o suficiente para as barras saírem com a largura errada. Imprima sempre em escala 100%.
A segunda causa é o ^BY: ele define a largura do módulo para todos os códigos seguintes, e um módulo pequeno demais para a resolução da impressora produz barras que se fundem. A terceira é o conteúdo não bater com a simbologia — um EAN-13 exige exatamente 12 dígitos, um Interleaved 2 of 5 exige quantidade par.
A etiqueta sai em branco ou cortada
Etiqueta em branco no conversor quase sempre quer dizer que o bloco não desenha nada — um ^XA^MCY^XZ, por exemplo, é só manutenção de impressora e é descartado de propósito, para um arquivo de cinquenta etiquetas não virar cem páginas.
Cortada é outra coisa: o ^PW ou o ^LL do arquivo é menor que o conteúdo, ou a densidade escolhida está errada. Sem ^PW e ^LL, o conversor cresce a tela até caber tudo em vez de cortar, então uma etiqueta cortada normalmente traz esses comandos com valores pequenos demais.
O QR Code sai vazio
O ^BQ não aceita o conteúdo direto: o ^FD precisa de um prefixo próprio antes dele. O formato é ^FDQA,seu-conteudo — onde QA escolhe o modo automático. Colar só a URL depois do ^FD gera um QR vazio ou um aviso.
É a pegadinha que mais aparece em QR feito à mão, porque todos os outros códigos de barras aceitam o conteúdo cru e só este não.
Um comando aparece como aviso na tela
Um aviso não é uma falha do arquivo: quer dizer que reconhecemos o comando e escolhemos não desenhar algo que estaria errado. Quatro simbologias caem aqui (^BK, ^BM, ^BR e ^BZ), e o campo é pulado em vez de sair um código que o leitor não leria.
Comandos de equipamento — ^MD de escurecimento, ^MT de tipo de mídia, ^PR de velocidade — são aceitos em silêncio e não mudam a imagem, porque um renderizador não tem cabeçote térmico. Isso é o comportamento correto e não é um problema no seu arquivo. A referência de comandos lista quais são quais.