Я пытаюсь заставить Puppeteer загрузить файл в браузере. В настоящее время я сохраняю файл локально в Cloud9, но хочу нажать кнопку загрузки PDF и загрузить его в Chrome.
Я пытался сохранить page.pdf в переменную, но это не сработало. Я также попытался открыть локально сохраненный файл, но я не могу заставить это работать также.
var express = require("express");
var puppeteer = require("puppeteer");
module.exports = function pdf(url, req) {(async () => {
var browser = await puppeteer.launch();
var page = await browser.newPage();
await page.goto('https://node-and-mysql-mbegg.c9users.io/clients/'+req.params.id+'/reports/monthlyreport/'+req.params.marketplace+'/'+req.params.month, {waitUntil: 'networkidle2'});
await page.pdf({path: 'public/temp/Performance Report -'+req.params.month+'.pdf', format: 'A4', landscape: true, printBackground: true});
await browser.close();
})();
}
///Print PDF route
router.get("/clients/:id/reports/monthlyreport/:marketplace/:month/pdf", function(req, res) {
var url = "/clients/"+req.params.id+"/reports/monthlyreport/"+req.params.marketplace+"/"+req.params.month
pdf(url, req);
res.contentType("application/pdf");
res.send(pdf);;
});
Я знаю, что res.send (pdf) требует, чтобы page.pdf () был сохранен в переменной и возвращен. Я просто не удалил это из маршрута.
Что происходит, когда я сохраняю page.pdf () в переменную, я просто получаю пустой файл, а не PDF, и он выглядит просто как пустой буфер или что-то в этом роде. Я не знаю, что я делаю неправильно, чтобы не загружать файл в браузере Chrome.