Heim > Fragen und Antworten > Hauptteil
Ich habe es versucht, aber es funktioniert nicht. Ich habe auch ein paar weitere Methoden hinzugefügt. Ich habe bereits nach Chat GPT gefragt, funktioniert aber nicht.
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粉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(); })();