Puppeteer JS 从选择器生成 PDF
Puppeteer JS generate PDF from selector
我正在熟悉 Puppeteer 以便在 Vue.js 应用程序中使用,但我不知道如何根据页面上的特定元素生成 PDF。我可以基于整页成功创建 PDF,但这并不理想。有没有我错过的方法或 class 可以允许这样做?我找不到像这样按选择器过滤的可链接 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。
谢谢!
尝试编写代码。 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)
木偶派对迟到了。然而,迟到总比不到好。到达此处的人应该测试此代码段是否有用。从上面的答案派生的代码:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch() //defaults to true
const page = await browser.newPage()
// Create PDF from your URL => replace my fictitious url with your own url for this to work!
await page.goto('https://932db2cf7b.ngrok.io/chapter/lesson.php', {waitUntil: 'networkidle2'})
const items = await page.$eval('#doto', (element) => {
return element.innerHTML
}) // Get DOM HTML elements
await page.setContent(items)
await page.pdf({ path: 'pdf/aip.pdf', format: 'A4' })
await browser.close()
})()
这是将 div 中的元素获取到名为 pdf 的文件夹中的 pdf => aip。
希望包含的评论对您有所帮助
谷歌搜索愉快!
我正在熟悉 Puppeteer 以便在 Vue.js 应用程序中使用,但我不知道如何根据页面上的特定元素生成 PDF。我可以基于整页成功创建 PDF,但这并不理想。有没有我错过的方法或 class 可以允许这样做?我找不到像这样按选择器过滤的可链接 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。
谢谢!
尝试编写代码。 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)
木偶派对迟到了。然而,迟到总比不到好。到达此处的人应该测试此代码段是否有用。从上面的答案派生的代码:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch() //defaults to true
const page = await browser.newPage()
// Create PDF from your URL => replace my fictitious url with your own url for this to work!
await page.goto('https://932db2cf7b.ngrok.io/chapter/lesson.php', {waitUntil: 'networkidle2'})
const items = await page.$eval('#doto', (element) => {
return element.innerHTML
}) // Get DOM HTML elements
await page.setContent(items)
await page.pdf({ path: 'pdf/aip.pdf', format: 'A4' })
await browser.close()
})()
这是将 div 中的元素获取到名为 pdf 的文件夹中的 pdf => aip。
希望包含的评论对您有所帮助
谷歌搜索愉快!