Al crear archivos PDF a partir de páginas web con Puppeteer, es fundamental esperar hasta que la página esté completamente cargada para garantizar que esté completa. y exactitud del documento generado. Profundicemos en cómo lograr esto sin recurrir a retrasos manuales.
El método page.waitForNavigation() proporciona una forma confiable de esperar los eventos de navegación de la página, incluida la carga inicial de la página. Al usar la opción networkidle0, especificamos que la función debe esperar hasta que no haya más conexiones de red activas.
await page.goto(fullUrl, {
waitUntil: 'networkidle0',
});
Una vez cargada la página, podemos completar el formulario de inicio de sesión y enviarlo.
await page.type('#username', 'scott');
await page.type('#password', 'tiger');
await page.click('#Login_Button');
A continuación, podemos agregar una llamada waitForNavigation() adicional para garantizar que el proceso de inicio de sesión esté completo.
await page.waitForNavigation({
waitUntil: 'networkidle0',
});
Finalmente, podemos continuar con la generación del PDF.
await page.pdf({
path: outputFileName,
displayHeaderFooter: true,
headerTemplate: '',
footerTemplate: '',
printBackground: true,
format: 'A4',
});
Si encuentra casos en los que es necesario incluir cierto contenido dinámico en el PDF, puede complementar este enfoque con page.waitForSelector() para esperar a que el elemento específico aparezca en la página antes de generar el PDF.
await page.waitForSelector('#example', {
visible: true,
});
Al utilizar estas técnicas, puede asegurarse de que Puppeteer espere a que la página se cargue por completo antes de generar el PDF, lo que resulta en una generación de documentos completa y precisa.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3