Sua impressora de recibos ESC/POS imprime apenas parte de cada linha, cortando o texto após 40 ou 48 caracteres. Isso acontece porque o Windows 11 envia dados em largura fixa ou limite de colunas que o firmware da impressora não sobrescreve. A impressora trata cada linha como um campo de comprimento fixo e trunca qualquer coisa além dessa largura.
Este artigo explica por que o driver da impressora ou a configuração do aplicativo causa o corte e como alterar o modo de comando da impressora, ajustar a configuração de caracteres por linha ou modificar seu software para enviar comandos ESC/POS raw em vez de depender do driver padrão do Windows. Você aprenderá três métodos verificados para interromper a truncagem e imprimir linhas completas do recibo.
Principais conclusões: Parando a truncagem de linhas da impressora ESC/POS no Windows 11
- Defina a largura da linha explicitamente nos comandos ESC/POS: Envie o comando GS L para definir um número máximo de caracteres por linha antes dos dados de texto para evitar que a impressora aplique seu limite padrão.
- Troque do driver Windows para impressão raw: Use uma porta TCP/IP direta ou passagem USB para enviar bytes ESC/POS raw, ignorando o driver de impressora do Windows que pode impor uma largura de coluna fixa.
- Ajuste a configuração de colunas do aplicativo para 80 caracteres: Altere seu software de ponto de venda ou etiquetas para gerar 80 colunas em vez de 40, para que a impressora receba o comprimento total da linha sem truncagem.
Por que as impressoras ESC/POS truncam strings longas no Windows 11
As impressoras ESC/POS esperam sequências de bytes raw que especificam tamanho da fonte, largura do caractere e comportamento de avanço de linha. Quando você imprime a partir de um aplicativo Windows usando um driver genérico somente texto, o driver assume uma largura de linha padrão de 40 ou 48 caracteres. O driver envia cada linha como um campo de comprimento fixo e a impressora corta qualquer caractere além desse comprimento.
A causa raiz é que o driver de impressora do Windows não passa os comandos ESC/POS que substituem a configuração de coluna padrão da impressora. A maioria das impressoras ESC/POS tem uma largura de coluna padrão de 40 caracteres no modo padrão. O driver nunca envia o comando GS L nL nH para definir a largura da linha para 80 ou 112 caracteres. Como resultado, o firmware da impressora trunca a linha em seu limite interno.
Outra causa comum é que o aplicativo envia dados em uma fonte que a impressora interpreta como caracteres de largura dupla. Por exemplo, se a impressora estiver no modo de largura dupla, cada caractere ocupa duas colunas, efetivamente reduzindo pela metade o comprimento da linha. A impressora então corta a string na largura física do cabeçote de impressão.
Passos para corrigir a truncagem de linhas em uma impressora ESC/POS no Windows 11
Você pode corrigir a truncagem alterando a forma como o Windows envia dados para a impressora. Os três métodos abaixo cobrem as abordagens mais confiáveis. Tente-os em ordem.
Método 1: Enviar comandos ESC/POS raw para definir a largura da linha
Este método usa uma conexão direta com a impressora e envia o comando GS L para definir a largura da linha para 80 caracteres antes de enviar o texto. Você precisa de uma ferramenta como RawPrinter ou POSPrinterCMD para enviar bytes raw.
- Encontre o nome da porta da impressora
Abra Configurações > Bluetooth e dispositivos > Impressoras e scanners. Clique na sua impressora ESC/POS. Clique em Propriedades da impressora. Na guia Portas, anote o nome da porta (por exemplo, USB001 ou COM1). - Baixe um enviador de bytes raw
Baixe o RawPrinter da Microsoft Store ou use uma ferramenta de linha de comando gratuita como print /D:”porta” nomearquivo. Para este exemplo, usamos o RawPrinter. - Prepare a sequência de comandos ESC/POS
Crie um arquivo de texto com os seguintes bytes em hexadecimal: 1B 40 (inicializar impressora), 1D 4C 50 00 (definir largura da linha para 80 caracteres), depois seu texto seguido por 0A (avanço de linha). Salve o arquivo como fixalinha.txt. - Envie os dados raw para a impressora
Abra um Prompt de Comando como Administrador. Execute copy /b fixalinha.txt \\localhost\nomedaimpressora onde nomedaimpressora é o nome exato da etapa 1. A impressora agora imprime a linha completa sem truncagem.
Método 2: Trocar do driver Windows para impressão raw
Este método ignora completamente o driver de impressora do Windows usando uma porta TCP/IP raw ou uma passagem USB. Funciona para impressoras de rede e impressoras USB que suportam modo raw.
- Abra Propriedades da Impressora
Vá para Configurações > Bluetooth e dispositivos > Impressoras e scanners. Clique na sua impressora ESC/POS. Clique em Propriedades da impressora. - Adicione uma porta TCP/IP padrão
Selecione a guia Portas. Clique em Adicionar porta. Escolha Porta TCP/IP padrão. Clique em Nova porta. Digite o endereço IP da impressora e o número da porta 9100. Clique em Avançar e Concluir. - Altere o driver para Genérico / Somente Texto
Na guia Avançado, clique em Novo driver. Selecione Genérico na lista de fabricantes e Genérico / Somente Texto na lista de drivers. Clique em Avançar e Concluir. - Defina o tipo de dados raw
Na guia Avançado, clique em Processador de impressão. Escolha Raw como o tipo de dados. Clique em OK duas vezes. - Teste a impressora
Imprima uma página de teste do Bloco de Notas com uma linha longa de texto (por exemplo, 80 caracteres). A impressora agora deve imprimir a linha completa sem cortar.
Método 3: Ajustar o aplicativo para gerar 80 colunas
Se você usa um aplicativo de ponto de venda ou etiquetas, o software pode estar configurado para 40 colunas. Alterá-lo para 80 colunas força o driver a enviar linhas mais longas.
- Abra as configurações do aplicativo
No seu software POS, vá para Configurações > Impressora > Layout do recibo ou Formato de impressão. - Altere a largura da coluna
Procure um campo chamado Caracteres por linha ou Largura da coluna. Altere o valor de 40 para 80. Se o campo usar polegadas, defina para 3,5 polegadas para um recibo de 3 polegadas a 24 caracteres por polegada. - Salve e teste
Salve as configurações e imprima um recibo de teste. A impressora agora deve imprimir a linha completa.
Problemas comuns após corrigir a truncagem de linhas
A impressora imprime caracteres estranhos após enviar comandos raw
Se a impressora exibir símbolos aleatórios ou caracteres chineses, os dados raw enviados contêm ordem de bytes incorreta ou falta de inicialização. Reenvie o comando 1B 40 (inicializar) antes de qualquer texto. Além disso, certifique-se de que o arquivo seja salvo como ANSI, não UTF-8 com BOM. Use um editor hexadecimal para verificar se os dois primeiros bytes são 1B 40.
O Windows 11 redefine a porta para USB após reinicialização
Algumas impressoras ESC/POS USB revertem para o driver padrão do Windows após uma reinicialização do sistema. Para evitar isso, desabilite o driver do Windows para esse dispositivo no Gerenciador de Dispositivos. Abra o Gerenciador de Dispositivos, expanda Filas de impressão, clique com o botão direito na sua impressora e selecione Desabilitar dispositivo. Em seguida, use apenas a porta TCP/IP raw para impressão.
Linhas ainda cortadas em 48 caracteres mesmo com configuração de 80 colunas
Isso acontece quando a impressora está no modo de largura dupla. O firmware da impressora interpreta cada caractere como duas colunas. Envie o comando ESC/POS 1B 21 00 para redefinir a largura do caractere para normal antes de imprimir. Inclua este comando em sua sequência de dados raw logo após o comando de inicialização.
| Item | Método ESC/POS raw | Método driver Windows |
|---|---|---|
| Controle de largura de linha | Comando GS L explícito define qualquer largura | Limitado pelo padrão de coluna do driver (40 ou 48) |
| Manipulação de largura de fonte | Pode redefinir para largura normal com 1B 21 00 | Driver pode forçar largura dupla |
| Complexidade de configuração | Requer ferramenta de envio de bytes raw | Alteração simples de driver |
| Compatibilidade com aplicativos POS | Funciona com qualquer aplicativo que envie para porta raw | Pode quebrar aplicativo que espera driver Windows |
Agora você pode corrigir a truncagem de linhas da impressora de recibos ESC/POS no Windows 11 enviando comandos ESC/POS raw para definir a largura da linha, trocando para uma porta TCP/IP raw com o driver Genérico / Somente Texto, ou ajustando seu aplicativo para gerar 80 colunas. Tente o método de comando raw primeiro porque ele oferece controle total sobre o firmware da impressora. Se você usa um aplicativo POS que suporta ESC/POS diretamente, procure uma configuração para enviar dados raw em vez de usar o spooler de impressão do Windows. Uma dica avançada: crie um arquivo em lote que envie os comandos de inicialização e largura de linha antes de cada trabalho de impressão, para que a impressora nunca volte ao seu limite padrão de 40 colunas.