Impressão de qr code no php usando sockets na epson ou bematech 4200-th

574 views
Skip to first unread message

Raoni

unread,
Feb 23, 2018, 6:36:16 PM2/23/18
to NFePHP
Alguem aqui no grupo conseguiu fazer impressão da NFCe, mais específicamente do QR code usando comandos ESC POS hex ?

Nos meus sistemas eu faço a impressão nas termicas usando Sockets no php, consigo imprimir tranquilo texto e até codigos de barra, mas não estou conseguindo imprimir QR code.

Meus clientes todos usan ou epson ou bematech 4200-th nas quais eu poderia usar a dll da propria impressora e imprimir instalando o sistema no ruindows, o que não é o ideal para mim.

Se alguem tiver conseguido imprimir o QR code usando hexadecimal dos comandos ESC POS e puder dar uma força, eu agradeço muito. Amanhã farei mais alguns testes podem dar resultado e se algum surtir, compartilho a solução aqui para quem vier a precisar.

Minha solução usando sockets foi com base no trabalho do amigo Mike42 no github ele tem uma lib escpos-php que é usada aqui no projeto NFePHP mas que acredito ainda não estar funcional.


Obrigado pela atenção. 

Ristone Ribeiro

unread,
Feb 24, 2018, 6:02:18 AM2/24/18
to nfe...@googlegroups.com
Olá Raoni, bom dia!

Eu consegui imprimir normalmente. Porém ainda utilizamos a versão antiga do NFEPHP.

Diga quais são suas dúvidas para poder ajudá-lo 

Atenciosamente 

--
--
Você recebeu esta mensagem porque está inscrito no Grupo "NFePHP".
Para Postar: nfe...@googlegroups.com
Para Sair do Grupo: nfephp+un...@googlegroups.com
Link: http://groups.google.com.br/group/nfephp?hl=pt-BR
-------
Repositório: https://github.com/nfephp-org/nfephp
---
Você recebeu essa mensagem porque está inscrito no grupo "NFePHP" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para nfephp+un...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Raoni

unread,
Feb 24, 2018, 7:16:22 AM2/24/18
to NFePHP
 Bom dia, Ristone.

Assim queria a ajuda de alguem facilitando os codigos hexadecimais para imprimir o qr code

Como exemplo eu tenho aqui a lista de codigos que eu mais uso, peguei o manual de programador de uma epson e fui testando, o que no final funcionou pra mim na epson e na bematech foram os comandos abaixo:

        const RESET_PRINTER = "\x1D\xF9\x28\x30";
const RESET_BUFFER = "\x1B\x40";
const CLEAR = "\02";
const NUL = "\x00";
const ESC = "\x0"; // toda impressão deve começar com esse caracter de escape
const FULL_CUT = "\x1B\x69";
const PARTIAL_CUT = "\x1B\x6D";
const FEED = "\x0C";
const LESS_LINE_SPACE = "\x1B\x33\x12";
const BOLD_ON = "\x1B\x45";
const BOLD_OFF = "\x1B\x46";
const UNDER_LINE_ON = "\x1B\x56\x01";
const UNDER_LINE_OFF = "\x1B\x56\x00";
const ALIGN_LEFT = "\x1B\x61\x0";
const ALIGN_CENTER = "\x1B\x61\x1";
const ALIGN_RIGHT = "\x1B\x61\x2";
const RIGHT_MARGIN = "\x1B\x51\x30";
const DOUBLE_SIZE_ON = "\x1b\x64\x01";
const DOUBLE_SIZE_OFF = "\x1b\x64\x00";
const BETTER_QUALITY = "\x1D\xF9\x2D\x01";
const WORSEN_QUALITY = "\x1D\xF9\x2D\x00";
const BARCODE_HEIGHT = "\x1B\x1D\x68"; //Gsh -> Set bar code height
const BARCODE_HRI = "\x1B\x1D\x48"; //GsH ->Set HRI
const BARCODE_PRINT = "\x1B\x1D\x6B"; //Gsk ->Printing of bar code
const BARCODE_WIDTH = "\x1B\x1D\x77"; //Gsw ->Set lateral size of bar code
const SPACE = "\x20";


Como uso sockets para imprimir via rede, funciona 100% pra mim.

Minha outra opção para o qr code seria pelo windows usando a mp2032.dll da bematech com o comando  ImprimeCodigoQRCODE, sei que funciona, mas não é o ideal e é pouco viavel.

Roberto Machado

unread,
Feb 24, 2018, 8:12:05 AM2/24/18
to nfe...@googlegroups.com
Eu reescrevi escpos para posprint vide https://github.com/nfephp-org/posprint

Porém não tenho acesso a esse tipo de impressora para poder fazer os testes adequados de impressão, e ninguém minimamente adequado (com conhecimentos) se prontificou a ajudar com o código.

Roberto

Raoni

unread,
Feb 28, 2018, 6:27:05 PM2/28/18
to NFePHP
 Obrigado, mestre Roberto.

Depois de muitas tentativas tentando usar comandos ESC POS para imprimir o qrCode na Bematech 4200-TH finalmente consegui imprimir.

Tive que fazer um megazord usando minha classe interna e alguns métodos do posprint que você reescreveu assim como alguns métodos do colega Mike42

gerei a img png do qrCode passei pra bitImg e mandei para a impressora, funcionou certinho. Depois vou parar para refatorar o megazord e aproveitar para testar o posprint nas impressoras que tenho disponível.


Saudações

Roberto Machado

unread,
Mar 1, 2018, 10:09:14 AM3/1/18
to nfe...@googlegroups.com
Legal Raoni, estou ansioso pela sua colaboração com isso (testar o posprint) e sugerir melhorias e se puder fazer PR no repositório.

Abraço

Roberto

Reply all
Reply to author
Forward
0 new messages