У меня есть страница html, содержащая несколько html диаграмм холста. Я хочу создать PDF-файл этой страницы, но без заголовка (т.е. часть страницы html, которая содержит несколько элементов холста). Я пробовал использовать canvas.toDataURL, но он может писать только в изображение. Также это изображение не содержит оригинального фона из html. Когда я пытаюсь сделать с селектором и внутренним HTML, он не возвращает холст. Как это сделать? Это мой тестовый код.
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({
headless: false,
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-web-security']
})
const reports = await browser.newPage()
await reports.goto('<myurl>')
await reports.waitFor(5000);
const canvas = await reports.evaluate(() => {
const canvas = document.querySelector("#canvasselector");
// I need to select more broader selector here #largeselector which contains multiple canvas elements and html
return canvas.toDataURL();
});
const base64String = canvas.substr(canvas.indexOf(',') + 1); // get everything after the comma
const imgBuffer = Buffer.from(base64String, 'base64'); //
fs.writeFileSync('test.png', imgBuffer);
await browser.close()
})();