我是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()吗?