搜索

首页  >  问答  >  正文

如何在下载过程中在Puppeteer中设置固定的PDF文件名

我尝试了这个但是不起作用。我还添加了更多的方法。已经询问了聊天GPT但是不起作用。

try {
// 从HTML生成PDF
const pdf = await page.pdf({path:'custom.pdf', format: 'A4', pageRanges: '1' });
await browser.close();
return pdf;
    } catch (error) {
      console.error('生成PDF时出错:', error);
    }

P粉321584263P粉321584263464 天前699

全部回复(1)我来回复

  • P粉203648742

    P粉2036487422023-09-20 00:00:17

    tHSIS代码将不起作用,因为pdf()方法中的路径选项仅用于指定在PDF生成过程中创建的临时文件。实际的PDF文件将保存在默认的下载目录中。 要设置一个固定的PDF名称,您需要拦截服务器的响应并修改Content-Disposition头。以下代码显示了如何做到这一点:

    const puppeteer = require('puppeteer');
    
    (async () => {
      const browser = await puppeteer.launch();
      const page = await browser.newPage();
    
      await page.goto('https://example.com/pdf');
    
      // 拦截服务器的响应。
      page.on('response', response => {
        if (response.headers['content-type'] === 'application/pdf') {
          // 修改Content-Disposition头以设置固定的文件名。
          response.headers['content-disposition'] = 'attachment; filename="custom.pdf"';
        }
      });
    
      // 下载PDF文件。
      await page.pdf();
    
      await browser.close();
    })();

    回复
    0
  • 取消回复