Puppeteer: ページの完了を待機することによる信頼性の高い PDF 生成
多くの Web ベース アプリケーションは、Web ページから PDF を効率的に生成するという問題に直面しています。特に、単一ページのアプリケーションでは、この点で課題が生じます。この記事では、この問題に対処し、Puppeteer を使用して PDF を生成するユーザー向けの解決策を提供します。
最初の試みと課題
最初のアプローチには、page.waitFor('networkidle2 ') ネットワークアクティビティが安定するまで待機します。ただし、単一ページのアプリケーションの場合、この方法ではページの読み込みが完了するまで待機できないことが多く、PDF ドキュメントが切り詰められてしまいます。
解決策: ナビゲーションを待ちます
より信頼性の高い解決策は、page.waitForNavigation() を使用して、PDF を生成する前に新しいページが完全に読み込まれるのを待つことです:
<code class="python">await page.goto(fullUrl, { waitUntil: 'networkidle0', }); await page.type('#username', 'scott'); await page.type('#password', 'tiger'); await page.click('#Login_Button'); await page.waitForNavigation({ waitUntil: 'networkidle0', }); await page.pdf({ path: outputFileName, displayHeaderFooter: true, headerTemplate: '', footerTemplate: '', printBackground: true, format: 'A4', });</code>
このメソッドにより、PDF はナビゲーション プロセス全体の後にのみ生成されます。
動的要素を待機中
PDF に含める必要がある動的に生成された要素がある場合は、page.waitForSelector() を使用できます。
<code class="python">await page.waitForSelector('#example', { visible: true, });</code>
これらの技術を使用すると、開発者は単一ページのアプリケーションから PDF を確実に生成でき、必要なすべてのコンテンツがドキュメントに確実に取り込まれるようになります。
以上がPuppeteer を使用してシングルページ アプリケーションから信頼性の高い PDF を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。