为经由HTTP响应传输的PDFKit设置文件名

6
我该如何使用pdfKit设置PDF文件的文件名以通过HTTP发送(而不是本地保存)?以下代码无法设置文件名,而且示例只展示了如何为本地保存设置文件名。
var doc = new PDFDocument({bufferPages: true});
doc.info.Title = 'Case ' + req.params.id + ' overview';
// Some more content here
doc.pipe(res);

我也尝试设置标题,但那似乎没有帮助。
res.setHeader('Content-disposition', 'attachment; filename=testFile.pdf');

Content-disposition 头应该有所帮助。确保调用 doc.end() 来完成流。文件下载成功了吗? - Sergey Lapin
文件下载正常,但是浏览器将其命名为download.pdf。 - Geraint Anderson
你解决了这个问题吗? - kumarp
2个回答

6

我知道这是一篇旧帖,但我认为这个答案可能对某些人有帮助。

let doc = new PDFDocument();
doc.info['Title'] = 'Test Document';

2
尽管这是旧的内容,但我还是要评论一下,因为我花了很长时间才找到可行的解决方案,而且这仍然是谷歌搜索结果中排名最高的。
为了在浏览器中显示PDF文件并定义下载名称,我使用了以下代码:
res.setHeader('Content-disposition', 'inline; filename='+ yourfilename +'.pdf');

希望这能帮助其他人。

如果您将内容设置为“inline”时,它将不起作用。文件名只适用于“attachment”类型的内容。 - Nikhil Nanjappa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接