Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用React JS在Puppeter中呈现图表并创建PDF?_Javascript_Node.js_Reactjs_Puppeteer - Fatal编程技术网

Javascript 如何使用React JS在Puppeter中呈现图表并创建PDF?

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

我试图在React JS脚本中使用
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)
after
page.addScriptTag()
从js代码中删除amcharts的动画主题帮助我解决了这一问题,因为木偶演员在拍摄快照之前会停下来

PS:即使动画被移除,图表仍然需要一些时间才能完全渲染,这就是为什么我不得不添加延迟

如果您找到了比延迟更好的解决方案,请发表意见