Есть ли в Chrome / Puppeteer какая-нибудь эквивалентная функция PhantomJS api.readPdf ()? - PullRequest
0 голосов
/ 07 февраля 2019

Я новичок в NodeJs и Puppeteer.Я нахожусь в процессе обновления старого генератора отчетов PDF от PhantomJs.Рабочий процесс Phantom читает файл PDF следующим образом:

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

и загружает файл PDF, используя .data результата.

При использовании 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 прошла успешно, и мой файл также загружается, можете ли вы посоветовать, если есть альтернатива моему api.readPdf () с использованием puppeteer или другого API?

...