é muito importante que o pdf seja gerado no backend? pois muitas vezes é mais fácil gerar no front usando control+P
ou
function salvarpdf() { window.print(); }
até porque rodar o puppeteer na aws vai sair muito caro
Por enquanto sim, pois a api é utilizada pela WEB e por Aplicativo Mobile também. Ele gera (ou espera-se) relatórios tanto na web quanto app (e são diferentes). Se tiver alguma outra sugestão, agradeço!
minha sugestão ainda é considerar fazer o pdf no frontend, na web é certo que funciona e o app pode abrir um link no navegador do celular pra gerar o PDF no front, vai te poupar processamento no backup. a api pode retornar o html e o front que pode ser puro renderiza o html e executa window.print()
Inviável e muito limitado. Suponhamos que esse pdf precisa ser baixado diretamente pelo usuário em qualquer Browser ou dispositivo. Ou que preciso disparar um email com ele anexado. Isso só é possível utilizando o back e é a forma lógica e correta para tal.
aqui você pode ver a compatibilidade da função window.print() ela é compatível com todos os navegadores em todos os dispositivos.
https://developer.mozilla.org/en-US/docs/Web/API/Window/print#browser_compatibility
é claro que pode existir casos em que ela não é a melhor opção, mas deve ser pensada como primeira escolha pois é a mais simples.
mesmo no caso do e-mail, ele pode conter um link que abre o navegador e gera o pdf. até porque isso é muito melhor e mais simples do que ter que gerar e anexar um arquivo.
as vezes a resposta mais simples é a melhor mesmo! se um dispositivo for tão antigo a ponto não suportar essa api ele provavelmente não lida bem com pdf também.
eu já precisei fazer um sistema de envio de certificados em pdf por e-mail e a melhor solução foi enviando o link pra uma página que usava a função print para salvarem o pdf. ninguém reclamou, foi usado em android, iOS e computadores. foi uma solução mágica, pois um sistema simples de envio de certificado foi simplesmente feito em php, em vez de querer complicar de mais e gerar o PDF no backend pra depois enviar.
Apenas compleementado... A um tempo atrás eu precisei otimizar as imagens dos produtos de um site que estava desenvolvendo, tentei por lambda e tive problema pra instalar uma lib na minha lambda, foi ai que tive uma ideia mais simple. Hoje em dia os hardwares mais simples já sao muito bons, foi entao que tive a ideia de fazer a otimização das imagens direto no navegador do usuário antes do upload, deu super certo e me economizou ter que ficar configurando mais um serviço na nuvem.
Nao se transfere responsabilidade para o front, front é inseguro, pode ser acessado facilmente. O fato de dar certo nao significa wue podemos fazer.