如何将角形的Google图表变成木偶

问题描述 投票:0回答:1

我有一个角度应用程序,它使用google-chart角度包装器生成用于报告目的的图表。此示例角度应用程序从elasticsearch查询(REST Api调用)获取数据。 Angular应用运行正常,页面加载时生成了Google图表可视元素。现在我想使用操纵up生成这些图表的pdf。但是,操纵up不包括pdf中的Google图表元素。

起初,我认为问题出在对Elasticsearch的Rest API调用中,可能是人偶在api调用返回之前获取页面。因此,我添加了足够的延迟以仅检查此问题(自从我测试非常基本的场景以来,我的elasticserch api调用在几秒钟内返回了)。即使我添加了很大的延迟问题仍然存在。

这是我的测试代码

const puppeteer = require('puppeteer');

(async () => {
const browser = await puppeteer.launch({args: ['--no-sandbox', '--disable-setuid-sandbox']})
const page = await browser.newPage()

await page.goto('http://localhost:4200/',  {waitUntil: 'networkidle2'})
await page.waitFor(50000);
await page.pdf({ path: 'api.pdf', format: 'A4' })

await browser.close()
})()

有没有一种方法可以使我正常工作?

编辑

我已经尝试使用静态数据,并且Google图表已成功生成。因此,这应该与REST调用有关。任何调查的方向都表示赞赏。

angular google-visualization puppeteer
1个回答
0
投票

[如果有人遇到这种情况,下面的方法会有所帮助。问题是CORS无法进行elasticsearch。为了弄清楚,我使用了headless = false模式。同样,为了使其正常运行,请禁用安全性,以免CORS失败。

const browser = await puppeteer.launch({
    headless: true,
    args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-web-security']
})
© www.soinside.com 2019 - 2024. All rights reserved.