[Ajuda] Renderizar PDF a partir de HTML com Node.js
Situação: tenho alguns templates em html + css e estava usando Puppeteer.
Localmente estava dando certo, porém rodo minha api na AWS, ao upar a api com o puppeteer, dá erro, e configurar o chromium/lambda no estado atual não é possível para mim.
Estou tentando utilizar o html-pdf e html-pdf-node, porém está quebrando as imagens e até divs, fica cortado pela metade nas páginas. O css parece não funcionar muito bem com essa lib, os exemplos utilizam até bootstrap, achei que ajudaria, mas em partes apenas.
Alguém teria alguma outra sugestão ou dica ?
const pdf = require("html-pdf-node");
const generatePDF = async (htmlContent, format, landscape) => {
const options = {
format, // Tamanho do papel, como "A4" ou "Letter"
landscape, // Orientação: true para paisagem, false para retrato
preferCSSPageSize: true,
printBackground: true,
};
// Criação do PDF a partir do HTML
const file = { content: htmlContent };
try {
const pdfBuffer = await pdf.generatePdf(file, options);
return pdfBuffer;
} catch (error) {
throw new Error(`Erro ao gerar PDF: ${error.message}`);
}
};
Utilizo esse código, que diz que resolve a quebra, porém sem sucesso 100%
/* Evita quebras de elementos dentro de uma página */
.no-break,
.header,
.checklist-item,
.value-item {
page-break-inside: avoid;
break-inside: avoid;
}