Corrigir impressora de recibos ESC/POS cortando strings longas no Windows 11
🔍 WiseChecker

Corrigir impressora de recibos ESC/POS cortando strings longas no Windows 11

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.

ADVERTISEMENT

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.

  1. 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).
  2. 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.
  3. 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.
  4. 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.

  1. Abra as configurações do aplicativo
    No seu software POS, vá para Configurações > Impressora > Layout do recibo ou Formato de impressão.
  2. 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.
  3. Salve e teste
    Salve as configurações e imprima um recibo de teste. A impressora agora deve imprimir a linha completa.

ADVERTISEMENT

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.

ADVERTISEMENT