Skip to content

Instantly share code, notes, and snippets.

@lite1979
Created August 18, 2020 21:47
Show Gist options
  • Save lite1979/1094ce7db265ae5c2f9d82e034bec854 to your computer and use it in GitHub Desktop.
Save lite1979/1094ce7db265ae5c2f9d82e034bec854 to your computer and use it in GitHub Desktop.
<script>
let defaultPrinter;
qz.security.setCertificatePromise(function(resolve, reject) {
fetch("assets/signing/digital-certificate.txt", {cache: 'no-store', headers: {'Content-Type': 'text/plain'}})
.then(function (data) {
data.ok ? resolve(data.text()) : reject(data.text());
});
});
qz.security.setSignatureAlgorithm("SHA512"); // Since 2.1
qz.security.setSignaturePromise(function(toSign) {
return function(resolve, reject) {
fetch("assignature.php?request=" + toSign, {cache: 'no-store', headers: {'Content-Type': 'text/plain'}})
.then(function(data) { data.ok ? resolve(data.text()) : reject(data.text()); });
};
});
qz.websocket.connect().then(function() {
const btn = document.getElementById('printer')
btn.addEventListener('click', function () {
qz.printers.getDefault().then(function(printer) {
var config = qz.configs.create(printer, { encoding: 'Cp1252' });
console.log(config)
var order = [
'\x1B' + '\x40', // Inicializo o documento
'\x10' + '\x14' + '\x01' + '\x00' + '\x05', // É dado um pulso para iniciar a impressão
'\x1B' + '\x61' + '\x31', // Defino o alinhamento ao centro
// Imprimo a logo
{
type: 'raw',
format: 'image',
flavor: 'file',
data: 'http://laercio-delivery.herokuapp.com/public_html/admin/assets/images/logo.png',
options: { language: "escp", dotDensity: 'double' },
},
'\x1B' + '\x74' + '\x10',
'\x0A' + '\x0A', // Quebra de linha
'Pedido Nº LVE182422' + '\x0A' + '\x0A', // Imprimo número do pedido
'\x0A', // Quebra de linha
'\x1B' + '\x45' + '\x0D', // Ativo negrito
'SEU PEDIDO' + '\x0A' + '\x0A', // Imprimo título
'\x1B' + '\x45\n', // Desativo negrito
'\x0A',
'\x1B' + '\x61' + '\x30', // Defino o alinhamento a esquerda
'\x1B' + '\x45' + '\x0D', // Ativo negrito
'Cliente: Hugo' + '\x0A' + '\x0A', // Imprimo nome do cliente
'Telefone: (83) 98805-0131' + '\x0A' + '\x0A', // Imprimo telefone
'\x1B' + '\x45\n', // Desativo negrito
// Imprimo linha tracejada
'------------------------------------------------' + '\x0A' + '\x0A',
"Macaxeira (1) R$ 2,94\n\n", // Imprimo o produto
"Alface Crespa (1) R$ 2,50\n\n", // Imprimo o produto
"Coentro (1) R$ 2,50\n\n", // Imprimo o produto
"Banana pacovan (1) R$ 5,00\n\n", // Imprimo o produto
"Batata doce (1) R$ 3,80\n\n", // Imprimo o produto
"Salsa (1) R$ 3,00\n\n", // Imprimo o produto
"Manjericão (1) R$ 2,21\n\n", // Imprimo o produto
"Abacaxi (2) R$ 7,60\n\n", // Imprimo o produto
"Goma de tapioca 1kg (1) R$ 6,00\n\n", // Imprimo o produto
"Tomate Cereja 500 gramas (1) R$ 5,00\n\n", // Imprimo o produto
"Mamão havaí (1) R$ 4,00\n\n", // Imprimo o produto
// Imprimo linha tracejada
'------------------------------------------------' + '\x0A' + '\x0A',
'Subtotal R$ 44,55' + '\x0A', // Imprimo subtotal
'Desconto R$ 0,00\n' + '\x0A' + '\x0A', // Imprimo desconto
'Entrega Grátis\n' + '\x0A' + '\x0A', // Imprimo entrega
// Imprimo linha tracejada
'------------------------------------------------' + '\x0A' + '\x0A',
'\x1B' + '\x21' + '\x30', // Ativo modo em
'Total R$ 44,55' + '\x0A', // Imprimo o total do pedido
'\x1B' + '\x21' + '\x0A' + '\x1B' + '\x45' + '\x0A' + '\x0A', // Desativo modo em
// Imprimo linha tracejada
'------------------------------------------------' + '\x0A' + '\x0A',
'\x1B' + '\x45' + '\x0D', // Ativo negrito
'Forma de pagamento Cartão online' + '\x0A' + '\x0A', // Imprimo o tipo de pagamento
'MasterCard - Crédito' + '\x0A' + '\x0A', // Imprimo nome do cartão
'\x1B' + '\x45\n', // Desativo negrito
'\x0A' + '\x0A', // Quebra de linha
'Entregar em 29/11/2018' + '\x0A' + '\x0A', // Imprimo data de entrega
'Rua Bananeiras, 999' + '\x0A', // Imprimo endereço
'Manaíra, João Pessoa' + '\x0A', // Imprimo bairro e cidade
'58038-170' + '\x0A' + '\x0A', // Imprimo cep
'\x0A' + '\x0A',
'\x1B' + '\x61' + '\x31', // Defino o alinhamento ao centro
'NÃO É DOCUMENTO FISCAL' + '\x0A' + '\x0A', // Imprimo observação
'\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A',
'\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A' + '\x0A',
'\x1B' + '\x69', // Corto o papel
'\x10' + '\x14' + '\x01' + '\x00' + '\x05', // Dou um pulso
];
qz.print(config, order).catch(function(err) {
console.error(err);
});
});
})
});
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment