Chrome / Puppeteer中是否有任何PhantomJS api.readPdf()等效函数?

时间:2019-02-07 10:05:58

标签: node.js phantomjs chromium puppeteer

我是NodeJ和Puppeteer的新手。 我正在升级旧的PhantomJs pdf报告生成器。 Phantom工作流程通过以下方式读取PDF

api.readPdf(result.file)
                      .then(function(data) {
                                return({ page: result.page,
                                         file: result.file,
                                         data: data
                                       });
                            });

并使用结果的.data下载Pdf。

使用Puppeteer时,我可以使用以下代码示例生成Pdf。

async function timeout(ms) {
    return new Promise(resolve => setTimeout(resolve, ms));
}
(async ()=>{
    const browser = await puppeteer.launch();
    const page = await browser.newPage();
    var paramData = completeParamData(reportParam);
    await page.goto(reportParam.templateUrl,{ waitUntil: 'networkidle2' });
    await page.emulateMedia('screen');
    await page.evaluate(doInjectParams, reportParam);
    await timeout(5000);
    var ts = new Date().getTime();
    await page.evaluate(() => { window.scrollBy(0, window.innerHeight); })
    await page.pdf({
        path:`mydoc_${ts}.pdf`,
        format: 'A4',
        printBackground:true
    });

    //**this data I dont want to fetch using the PhantomJS api**
    const data = await api.readPdf(`mydoc_${ts}.pdf`)
                  .then(function(data) {
                            console.log(data);
                            return data;
                        });
    await workflowDone(null,
        { data: data,
          filename: `mydoc_${ts}.pdf`,
          download: sanitize(`mydoc_${ts}.pdf`)});

    })();

pdf生成成功并且我的文件也正在下载,您能否建议使用puppeteer或其他一些api替代api.readPdf()吗?

0 个答案:

没有答案