QZ Tray: Impressão em impressoras térmicas pelo navegador com Javascript
Danilo Machado
Posted on April 1, 2022
Neste artigo irei abordar a melhor maneira de imprimir em impressoras térmicas direto pelo navegador.
A solução do QZ é utilizada pela grande maioria de softwares do ramo de cardápio digital no Brasil.
Apesar do QZ vender licenças para domínios, ele é um open sourcer. Ou seja, precisamos alterar o código fonte do QZ e compilar novamente, de acordo com o nosso domínio.
1) Você pode realizar os testes direto no demonstrativo do QZ;
2) Ao realizar os testes, você verá os pop-ups do QZ aparecendo igual na imagem abaixo, informando sobre a licença. Por isso precisaremos recompilar o QZ com seu novo certificado.
3) Recomendo realizar o download do JDK 7 ou superior, Apache Ant e Open SSL;
4) Faça o clone do repositório do QZ Tray no github;
5) Gere o certificado ssl com o Open SSL;
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 11499 -nodes
OBS: quando perguntar o dominio, colocar o curinga, ex: *.seusite.com.br
6) Gere a private key usando o certificado ssl;
openssl pkcs12 -inkey key.pem -in cert.pem -export -out privateKey.pfx
7) Coloque o arquivo key.pem
gerado anteriormente na pasta do tray-master
, na raíz, que foi clonado do github;
8) Agora, precisamos compilar o QZ com o Apache Ant, mas antes, lembre-se;
8.1) Depois de baixar o Apache Ant, coloque a pasta na variável de ambiente;
- ANT_HOME=caminho
- Path=[]caminho
8.2) Rodar o comando para compilar de acordo com seu sistema operacional;
// win
ant nsis -Dauthcert.use="key.pem"
// linux
ant makeself -Dauthcert.use="key.pem"
// mac
ant pkgbuild -Dauthcert.use="key.pem"
9) Depois de compilado, abrir QZ em /tray-master/out/dist/qz-tray.jar
e clicar em "+", pra gerar o certificado, será gerado o digital-certificate.txt
e private-key.pem
, copie os 2 e coloque no seu servidor, pro sistema poder utilizar os certificados;
10) E quando for usar o QZ no seu website, basta utilizar os certificados gerados;
11) E o seu arquivo sign-message.php pode ser montado da seguinte forma;
12) Depois disso tudo, os pop-ups do QZ irão parar de aparecer e você irá conseguir imprimir sem problemas;
13) Não esqueça de dar uma olhada na documentação do QZ, pois lá tem todas as configurações e opções de impressão;
Posted on April 1, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.