Comment définir un nom de fichier PDF fixe dans Puppeteer pendant le téléchargement
P粉321584263
P粉321584263 2023-09-19 09:05:12
0
1
695

J'ai essayé mais ça ne marche pas. J'ai également ajouté quelques méthodes supplémentaires. J'ai déjà posé des questions sur Chat GPT mais cela ne fonctionne pas.

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粉321584263
P粉321584263

répondre à tous(1)
P粉203648742

tLe code HSIS ne fonctionnera pas car l'option path dans la méthode pdf() n'est utilisée que pour spécifier le fichier temporaire créé lors de la génération PDF. Le fichier PDF réel sera enregistré dans le répertoire de téléchargement par défaut. Pour définir un nom PDF fixe, vous devez intercepter la réponse du serveur et modifier l'en-tête Content-Disposition. Le code suivant montre comment procéder :

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();
})();
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal