Salvar página em PDF e enviar por e-mail via Javascript

30/03/2020

0

Na empresa que eu trabalho tem um portal onde as pessoas podem ver seu espelho ponto.
A situação é o seguinte: Os colaboradores acessam o portal, selecionam os dias que precisam que seja corrigido o ponto e clicam num botão onde é gerado uma nova página, com uns input onde então é preenchido os horários corretos e o motivo da correção.
Acontece que essa segunda página que gera é somente visual, as pessoas preenchem os campos só que os valores não são armazenados em lugar nenhum, então depois imprimem e passam a impressão para seus superiores.
A minha dúvida é: Existe a possibilidade de gerar um PDF desta pagina exatamente como ela está (Como se fosse imprimir em PDF) e depois enviar para um email via javascript?

estou colocando uns prints pra ficar mais facil de entender.

Parte onde seleciona os dias que precisam justificar os pontos
https://uploaddeimagens.com.br/imagens/zpkeQM0

Página que gera com os dados selecionados. Então é preenchidos os campos e impresso. É desta página que eu preciso que seja gerado um PDF e seja enviado por e-mail.
https://uploaddeimagens.com.br/imagens/nRWFBng

Desde já, eu agradeço. Obrigado.
Carlos Massam

Carlos Massam

Responder

Posts

29/05/2020

Allan

É possível gerar um PDF a partir do frontend.
Mas não é possível você enviar um email diretamente do frontend.

Motivo: o email necessita de um cliente POP ou SMTP pra fazer interface com os provedores de email e a página HTML não tem esse tipo de coisa disponível.
Pra mandar um email para o usuário, você deve enviar essa requisição para seu backend processar.

Sabendo disso, acredito que você pode tomar 2 caminhos:

- Dar o download do PDF pro usuário na hora que ele pede o espelho de ponto dele
- Enviar uma requisição para o seu backend tanto criar o PDF quanto enviar o email
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar