4

我正在尝试通过单击按钮下载 pdf。但是我无法下载它,因为它在新标签中打开而不是下载它。

遵循我尝试过的解决方案,但似乎没有任何效果。请帮我 。

1)收听targetcreated,并将页面转换为pdf

browser.on('targetcreated', async (target) => {
  if (target.type() !== 'page') {
    return;
  } else {
    let newPage = await target.page();
    await page.waitFor(5 * 1000); // To stop proceeding to other clicks in current page
    await newPage.waitFor(5 * 1000); // To let it load the pdf
    newPage.pdf({path: "./pdfDownloaded/" + new Date().getTime() + ".pdf"})
  }
});

did not work转换后的pdf为空白的解决方案

2) 设置标志always_open_pdf_externally: true

puppeteer.use(require('puppeteer-extra-plugin-user-preferences')({userPrefs: {
   download: {
     prompt_for_download: false,
  },
  plugins: {
    always_open_pdf_externally: true
  }
}}))

did not workChrome/Chromium崩溃时的解决方案always_open_pdf_externally: true

3)在页面评估中给出 print() ,并在打印预览打开时找到save按钮并单击 。

解决方案did not work,因为它打开提示询问位置以保存 pdf 并且 Puppeteer 无法访问操作系统驱动的提示

4

0 回答 0