pstglia Postado 3 Setembro Compartilhar Postado 3 Setembro Olá Gostaria de compartilhar o código de um shell script simples que montei para teste de impressão no Linux. O script recebe 3 parâmetros (texto_titulo, texto1 e texto2) Ele basicamente submete os seguintes comandos ESC/POS na porta da impressora (mapeada através da constante DEV_IMPRESSORA, setada com /dev/usb/lp0): Inicializa a impressora; Seleciona o codepage 850 (opção 2 multi língua) Imprime o titulo centralizado em largura dupla + negrito Imprime o texto1 em fonte padrão alinhado a esquerda Imprime o texto2 centralizado em largura e altura dupla + negrito Por fim, avança algumas linhas e corta o papel O script depende do comando awk (presente em todas as distribuições) e do comando iconv (usado para converter a codificacao do texto a ser impresso de UTF-8 para CP850) Espero que seja útil Abraços, Paulo #!/bin/bash p_titulo="$1" p_texto_1="$2" p_texto_2="$3" DEV_IMPRESSORA="/dev/usb/lp0" echo 1 | awk -v p_titulo="${p_titulo}" -v p_texto_1="${p_texto_1}" -v p_texto_2="${p_texto_2}" '{ # Inicializa a impressora printf("%c%c", 0x1b, 0x40) # Seleciona o codepage 850 printf("%c%c%c", 0x1b, 0x74, 0x02) # Avanca algumas linhas printf("%c%c", 0x0a, 0x0a) # Centraliza o texto printf("%c%c%c", 0x1b, 0x61, 0x31) # Escolhe negrito e altura dupla para a fonte printf("%c%c%c", 0x1b, 0x21, 0x08 + 0x10) # Imprime o titulo printf("%s",p_titulo) # Volta a fonte normal printf("%c%c%c", 0x1b, 0x21, 0x00) # Avanca uma linha e imprime o primeiro texto # alinhado a esquerda printf("%c%c%c%c", 0x0a, 0x1b, 0x61, 0x30) printf("%s%c","=======================================", 0x0a) printf("%s%c",p_texto_1, 0x0a) printf("%s%c","=======================================", 0x0a) # Avanca algumas linhas e imprime o segundo texto # centralizado, em negrito, com alturaxlargura dupla printf("%c%c%c%c%c%c%c%c", 0x0a, 0x0a, 0x1b, 0x21, 0x08 + 0x10 + 0x20, 0x1b, 0x61, 0x31) printf("%s",p_texto_2) printf("%c%c%c%c%c%c", 0x0a, 0x0a, 0x0a, 0x0a, 0x0a, 0x0a) # Corta o papel (corte full) printf("%c%c", 0x1b, 0x69) }' | iconv -f UTF-8 -t CP850 > ${DEV_IMPRESSORA} 1 1 Link para o comentário Compartilhar em outros sites More sharing options...
Fundadores Daniel Simoes Postado 3 Setembro Fundadores Compartilhar Postado 3 Setembro Obrigado por compartilhar Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link para o comentário Compartilhar em outros sites More sharing options...
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora