J'essaie actuellement de voir s'il y a un moyen de supprimer les sauts de page dans mon PDF marionnettiste, car certains des sauts de page dans ma configuration PDF actuelle coupent le texte d'une manière bizarre. Capture d'écran de ce dont je parle :
Mon code de marionnettiste :
app.get("/:companyId/pdf", (req, res) => {
(async () => {
try {
const browser = await puppeteer.launch({ args: ['--no-sandbox'] });
const page = await browser.newPage();
const url =
process.env.WEBSITE_URL + `/${req.params.companyId}/report-internal`;
await page.goto(url, { waitUntil: "networkidle0" });
const buffer = await page.pdf({ format: "A4", printBackground: true });
res.type("application/pdf");
res.send(buffer);
browser.close();
} catch (error) {
console.error(error);
res.status(500).send("PDF cannot be generated.");
}
})();
});
Est-il possible de générer un PDF long et continu avec Puppeteer ? Ce serait l'idéal. J'ai essayé de définir des styles d'impression CSS personnalisés pour empêcher les sauts de page après certains éléments, mais jusqu'à présent, je n'ai pas eu de chance. Toute aide est la bienvenue.
EDIT : J'ai trouvé une solution temporaire qui n'est pas la plus belle, mais qui fonctionne. J'ai dû définir manuellement la largeur et la hauteur de mon document dans la fonction page.pdf comme suit :
const buffer = await page.pdf({ printBackground: true, width: 800, height: 3800 });
S'il y a une meilleure solution pour ça, ce serait génial. Mais au cas où quelqu'un tomberait sur ce problème, c'est ce qui a fonctionné pour moi.