Согласно официальной документации , если вы не укажете путь, файл не будет сохранен на диск.
page.pdf (параметры):
Объект параметров, который может иметь следующие свойства:
путь Путь к файлу для сохранения в формате PDF. Если путь является относительным путем, то он разрешается относительно текущего рабочего каталога. Если путь не указан, файл PDF не будет сохранен на диск.
Это означает, что он должен возвращать что-то вроде буфера или двоичного представления сгенерированного файла. Вам просто нужно вернуть это или передать это в ответ, в зависимости от используемой вами структуры.
Это просто выводит pdf на консоль:
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.content());
const pdf = await page.pdf();
await browser.close();
console.log(pdf) // maybe do response(pdf).type('x-pdf')
РЕДАКТИРОВАТЬ: Вот полный пример использования экспресс и кукловод, который возвращает содержимое PDF непосредственно в памяти. Он работает на runkit, поэтому я думаю, что применяются те же ограничения (может быть, даже больше). Если вы перейдете к общедоступной конечной точке, имеющейся в примере, вы увидите, как браузер обнаруживает, что это PDF-файл, и правильно его отображает.
код
const puppeteer = require ('puppeteer');
const express = require('express');
var app = express(exports);
const browser = await puppeteer.launch();
const main = async () => {
const page = await browser.newPage();
await page.goto('https://example.com');
const pdf = await page.pdf();
return pdf;
}
app.get('/', async function (req, res) {
const pdf = await main();
res.contentType("application/pdf");
res.send(pdf);
});
app.listen(3000, function(){ console.log('Listening on 3000') });