PDFToolKit 正在发送奇怪的数据

PDFToolKit is sending weird data

我已经为 node.js 安装了 PDFKit。当我调用我的方法来下载 PDF 文件时,我在浏览器上得到了这种字符:

xœU»nÜ0ìùüËûâ’Œ+8Ò¹.H‘œOn|Eà¿ï!ï>  AÔ’”†ÃåÌŠ#áºa4Χð+ðÕ؇ýe£ªMfç)av

这是我的代码:

var doc = new PDFDocument({ layout: 'landscape' });
doc.pipe(res);
doc.moveDown(1);
doc.text(reportName, { align: "center" });
doc.text(bNames.join(','), { align: "center" });
doc.text(dateFrom + " - " + dateTo, { align: "center" });
doc.moveDown(2);
const table0 = {
   headers: allNames,
   rows: allData
};
doc.table(table0, {
   prepareHeader: () => doc.font('Helvetica-Bold').fontSize(10),
   prepareRow: (row, i) => doc.font('Helvetica').fontSize(10)
});
doc.end();

还有什么我必须告诉 PDFKit 才能正常工作吗?

编辑 1:

我在后端 运行 将此代码发送到我的前端,以便我可以在那里下载它

如果您希望 PDF 直接响应浏览器,您需要添加 header 以便它理解二进制数据。

在管道响应之前设置它。

res.setHeader('Content-type', 'application/pdf')