Lors de la création de PDF à partir de pages Web à l'aide de Puppeteer, il est crucial d'attendre que la page soit complètement chargée pour garantir qu'elle est complète. et l'exactitude du document généré. Voyons comment y parvenir sans recourir à des retards manuels.
La méthode page.waitForNavigation() fournit un moyen fiable d'attendre les événements de navigation dans les pages, y compris le chargement initial de la page. En utilisant l'option networkidle0, nous spécifions que la fonction doit attendre qu'il n'y ait plus de connexions réseau actives.
await page.goto(fullUrl, {
waitUntil: 'networkidle0',
});
Une fois la page chargée, nous pouvons remplir le formulaire de connexion et le soumettre.
await page.type('#username', 'scott');
await page.type('#password', 'tiger');
await page.click('#Login_Button');
Ensuite, nous pouvons ajouter un appel waitForNavigation() supplémentaire pour garantir que le processus de connexion est terminé.
await page.waitForNavigation({
waitUntil: 'networkidle0',
});
Enfin, nous pouvons procéder à la génération du PDF.
await page.pdf({
path: outputFileName,
displayHeaderFooter: true,
headerTemplate: '',
footerTemplate: '',
printBackground: true,
format: 'A4',
});
Si vous rencontrez des cas où certains contenus dynamiques doivent être inclus dans le PDF, vous pouvez compléter cette approche avec page.waitForSelector() pour attendre que l'élément spécifique apparaisse sur la page avant de générer le PDF.
await page.waitForSelector('#example', {
visible: true,
});
En utilisant ces techniques, vous pouvez vous assurer que Puppeteer attend que la page soit complètement chargée avant de générer le PDF, ce qui entraîne une génération de document complète et précise.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3