Я пытаюсь выяснить, как правильно объединить Puppeteer и библиотеку GoogleCharts для рендеринга гистограмм и экспорта PNG-изображения диаграммы.
Базовая компоновка, в основном основанная на документации Puppeteer, кажется,быть чем-то вроде этого, чтобы создать новую страницу с элементом canvas.
(async () => {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setContent(`
<!DOCTYPE html>
<html>
<body>
<canvas id="chart" width="580" height="400"></canvas>
</body>
</html>
`);
await browser.close();
})();
Я нашел этот пакет npm для работы с Google Charts: https://www.npmjs.com/package/google-charts. Кажется, что метод chart.draw
принимаетэлемент DOM, в котором он будет отображать диаграмму.
Согласно документации этого пакета, использование выглядит довольно просто.
const pie_1_chart = new GoogleCharts.api.visualization.PieChart(document.getElementById('chart1'));
pie_1_chart.draw(data);
Как я могу выполнить метод draw, чтобы онвизуализировать диаграмму внутри элемента #canvas
DOM страницы Кукловода?
Кроме того, если бы вы могли привести пример правильного способа экспорта страницы / холста в виде изображения в формате PNG, это было бы очень полезно.
ПРИМЕЧАНИЕ : Я много просмотрел, чтобы найти существующую библиотеку / пакет, который бы делал то, что я пытаюсь достичь, но ближе всего я могfound это пакет TypeScript для Chart.JS: https://github.com/SeanSobey/ChartjsNodePuppeteer. Я не знаком с TypeScript / ES6, поэтому я не знаю, как я мог бы адаптировать эту библиотеку, чтобы она работала с библиотекой Google Charts вместо Chart. JS.
Спасибо