Javascript 如何使用React JS在Puppeter中呈现图表并创建PDF?
我试图在React JS脚本中使用Javascript 如何使用React JS在Puppeter中呈现图表并创建PDF?,javascript,node.js,reactjs,puppeteer,Javascript,Node.js,Reactjs,Puppeteer,我试图在React JS脚本中使用puppeter的无头实例呈现一个amchart4 Piechart,以创建一个PDF文件 但是,下载的PDF只包含amcharts符号,而不是图表本身。我认为,在图表呈现之前,puppeter正在拍摄快照并呈现PDF。以下是木偶演员代码 const browser = await puppeteer.launch({ headless: false }); const page = await browser.newPage(); await page.se
puppeter
的无头实例呈现一个amchart4 Piechart,以创建一个PDF文件
但是,下载的PDF只包含amcharts
符号,而不是图表本身。我认为,在图表呈现之前,puppeter
正在拍摄快照并呈现PDF。以下是木偶演员代码
const browser = await puppeteer.launch({ headless: false });
const page = await browser.newPage();
await page.setContent(pageContent, { waitUntil: 'networkidle0' });
await page.addScriptTag({
path: './templates/index-bundle.js',
type: 'text/javascript',
});
const buffer = await page.pdf({
format: 'A4',
printBackground: true,
margin: {
left: '0px',
top: '0px',
right: '0px',
bottom: '0px',
},
});
await browser.close();
我确信js文件中没有问题,因为当我使用headless:false
运行Puppeter时,会打开一个chrome实例,并且图表会正确显示,没有任何控制台错误
有人能帮我将js脚本正确地注入到Puppeter中,以便Puppeter等待图表渲染完成。添加
wait page.waitFor(500)
afterpage.addScriptTag()
从js代码中删除amcharts的动画主题帮助我解决了这一问题,因为木偶演员在拍摄快照之前会停下来
PS:即使动画被移除,图表仍然需要一些时间才能完全渲染,这就是为什么我不得不添加延迟
如果您找到了比延迟更好的解决方案,请发表意见