Файл не поврежден, вы рассматриваете код как синхронный, но все же асинхронный.
Вам нужно подождать, пока файл не будет полностью записан, затем вы можете прочитать его.В любом случае вам не нужно записывать его в файл для отправки контента, если вам не нужен файл для сохранения на диске, вы можете просто перенаправить его на res
.
res.setHeader('Content-Type', 'application/pdf');
res.setHeader('Content-Disposition', 'attachment; filename=' + fileName);
const pdf = printer.createPdfKitDocument(docDefinition);
pdf.pipe(res);
ЕслиВы хотите сохранить его в файл, а затем прочитать его, вы можете сделать следующее:
const write = fs.createWriteStream('./basics.pdf');
pdfDoc.pipe(write);
write.on('finish', () => {
fs.createReadStream('./basics.pdf')
.pipe(res); //
});
pdfDoc.end();