使用puppeteer将PDF保存到文件

时间:2018-11-05 21:01:04

标签: node.js pdf chromium puppeteer

我正在使用操纵up通过Fetch API获取PDF并将文件保存到磁盘。

我正在尝试将PDF保存到磁盘上的文件中,但是当我打开pdf时,会看到白色的屏幕。

enter image description here

enter image description here

!!已编辑!!

https://github.com/GoogleChrome/puppeteer/issues/299#issuecomment-340199753

处找到了解决方案

2 个答案:

答案 0 :(得分:1)

由于您已经在使用Puppeteer,因此将网页保存为PDF的最佳方法是先使用Puppeteer将其打开,然后再使用Puppeteer API来保存PDF。

page.pdf()函数就是这样做的。 See docs

我假设通过使用fetch(),您只是下载getPdf.asp本身不会产生有效的PDF响应流。也许它仅以客户端HTML响应,其中包括从某些远程资源获取PDF的脚本。

因此,我会尝试:

await page.goto(PDF_PAGE_URL);
const pdfBuffer = await page.pdf();
// process the buffer

希望有帮助!

答案 1 :(得分:1)

await page.pdf({ path: 'path/to/save/pdf', format: 'A4' });

这会将PDF保存到磁盘中。