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 son exhaustivité. 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 précisons que la fonction doit attendre qu'il n'y ait plus de connexions réseau actives.
<code class="javascript">await page.goto(fullUrl, { waitUntil: 'networkidle0', });</code>
Une fois la page chargée, nous pouvons remplir le formulaire de connexion et le soumettre.
<code class="javascript">await page.type('#username', 'scott'); await page.type('#password', 'tiger'); await page.click('#Login_Button');</code>
Ensuite, nous pouvons ajouter un appel supplémentaire waitForNavigation() pour garantir que le processus de connexion est terminé.
<code class="javascript">await page.waitForNavigation({ waitUntil: 'networkidle0', });</code>
Enfin, nous pouvons procéder à la génération du PDF.
<code class="javascript">await page.pdf({ path: outputFileName, displayHeaderFooter: true, headerTemplate: '', footerTemplate: '', printBackground: true, format: 'A4', });</code>
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.
<code class="javascript">await page.waitForSelector('#example', { visible: true, });</code>
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.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!