Jump to content

Como imprimir conteudo de um template gerado dinamicamente com JavaScript


jcvilanova

Postagens Recomendadas

Galera, criei um sisteminha de pedidos online para hamburgueria, uma landpage com o cardapio e opção de enviar o pedido pelo whatsapp. Ocorre que eu gostaria tambem de imprimir cada pedido feito. Para mandar o pedido pelo whatsapp eu criei um metodo que percorre o carrinho de compras e cria um template conforme os itens do pedido, jogo tudo numa variavel, depois transformo numa url. Ja tentei de tantas as formas mandar mesmo conteudo para uma mini impressora termica, usando o window.print. Tive a ideia de abrir uma pagina em branco e jogar o conteudo da variavel texto, mas ficou tudo meios desajustado, junto, numa linha só. vejam meu metodo:

finalizarPedido: () => {
           if (meu_Carrinho.length >0 && meu_Endereco != null) {

                var texto = 'Olá, eu gostaria de fazer um pedido,';
                texto += `\n*Itens do Pedido:*\n\n\${itens}`; 
                texto += '\n*Endereço de Entrega:*'; 
                texto += `\n${meu_Endereco.endereco}, ${meu_Endereco.numero}, ${meu_Endereco.bairro}`; 
                texto += `\n${meu_Endereco.cidade} - ${meu_Endereco.Uf} / ${meu_Endereco.cep} ${meu_Endereco.complemento}`; 
                texto += `\n\n*Total (com entrega): R$ ${(valor_Carrinho + valor_Entrega).toFixed(2).replace('.', ',')}*`; 

                var itens = '';

                $.each(meu_Carrinho, (i, e ) => {

                    itens += `*${e.quantidade}x* ${e.name}........R$ ${e.price.toFixed(2).replace('.', ',')} \n`; 
                    
                    // verificando se o each chegou ao ultimo item

                    if ((i + 1) == meu_Carrinho.length) {

                        texto = texto.replace(/\${itens}/g, itens);

                 //     encodificando a variavel texto para URL do whatsapp

                     let encode = encodeURI(texto);

                   //  criando a URL 

                   //   let URL = `https://wa.me/5598970220128?text=${encode}`;

                      let URL = `https://wa.me/${celular_Empresa}?text=${encode}`;

                    //  atrubuindo o endereço URL ao href do Botao Enviar Pedido

                    $("#btnEtapaResumo").attr('href', URL);
                 }
              });
            }

        },

O método está enviando todo o conteudo certinho em forma de mensagem para o whatsapp, ocorre que eu gostaria de mandar esse conteudo direto para impressora que fica na cozinha. Alguem sabe me dizer como eu posso fazer isso ?

Ja tentei da seguinte forma: criando uma nova janela e jogando o conteudo da variavel texo dentro da janela,

const win = window.open(' ', ' ', 'heigtht=600, width=600');
                  win.document.write(texto);

Acontece que dessa forma ai chega tudo sem formatação na janela e eu precisaria tambem de um botão nesta janela para imprimir e depois enviar para uma mini impressora termica. Mas não sei como fazer isso. Penso que a forma mais adequada seria enviar o pedido gerado diretamente para a impressora, sem a necessidade de criar essa tela. Mas como fazer ? Alguem pode me ajudar ?

  • Curtir 1
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...