[英]How to download pdf from puppeteer using Nest js as Server Side and React in Client Side?
[英]How to render amcharts within Puppeteer using React JS and create a PDF?
我正在嘗試使用 puppeteer 的無頭實例在 React JS 腳本中渲染 amchart4 puppeteer
以創建 PDF 文件。
但是,下載的 PDF 僅包含amcharts
符號,而不包含圖表本身。 我認為,在圖表渲染之前, puppeteer
正在拍攝快照並渲染 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
運行 puppeteer 時,會打開一個 chrome 實例並且圖表正確顯示,沒有任何控制台錯誤。
有人可以幫我在 puppeteer 中正確注入 js 腳本,以便 puppeteer 等到圖表渲染完成。
在 page.addScriptTag() 之后添加await page.waitFor(500)
page.addScriptTag()
從 js 代碼中刪除 amcharts 的 animation 主題幫助我解決了它,因為 Puppeteer 在拍攝快照之前停止。
PS:雖然animation被移除了,但是圖表仍然需要一些時間才能完全渲染,這就是我不得不添加延遲的原因。
如果您找到比延遲更好的解決方案,請發表評論。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.