首页 > 解决方案 > Puppeteer JS 从选择器生成 PDF

问题描述

我正在熟悉Puppeteer以在 Vue.js 应用程序中使用,但我不知道如何根据页面上的特定元素生成 PDF。我可以根据整页成功创建 PDF,但这并不理想。有没有我错过的方法或类可以允许这样做?我找不到一个可链接的page函数来按选择器过滤,如下所示:

    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    await page.goto('https://what.a.fancy/website', {waitUntil: 'networkidle2'});
    await page.$('.just-this-html').pdf(options);

我确实看到有一个page.$(selector)函数,但我不确定如何将它与.then()可以访问返回的 HTML 到 PDF 的调用链接起来。

谢谢!

标签: javascriptvue.jspdf-generationpuppeteerhtml2pdf

解决方案


试试这个代码。 await page.setContent() page.setContent

例子

const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.google.com/', {waitUntil: 'networkidle2'});
const dom = await page.$eval('div.jsb', (element) => {
     return element.innerHTML
}) // Get DOM HTML
await page.setContent(dom)   // HTML markup to assign to the page for generate pdf
await page.pdf(options)

推荐阅读