【问题标题】:Set filename for PDFKit piped to HTTP response为通过管道传输到 HTTP 响应的 PDFKit 设置文件名
【发布时间】:2017-05-26 06:45:19
【问题描述】:

如何为使用 pdfKit 创建的 PDF 文件设置文件名,以便通过 HTTP 发送(而不是在本地保存)。以下不设置文件名,decs只显示如何设置文件名以保存本地。

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() 来完成流。文件是否下载?
  • 文件下载正常,但我假设浏览器名为 download.pdf
  • 你发现了吗?

标签: node.js express node-pdfkit


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    尽管这很旧,但我还是发表评论是因为我花了一段时间才找到可行的解决方案,这仍然是谷歌的最高回应。

    要让 PDF 在浏览器中显示但定义我使用的下载名称:

    res.setHeader('Content-disposition', 'inline; filename='+ yourfilename +'.pdf');
    

    希望这对其他人有帮助。

    【讨论】:

    • 如果您将处置设置为inline,这将不起作用。文件名仅适用于处置attachment
    猜你喜欢
    • 2013-04-25
    • 2014-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 2016-06-14
    • 1970-01-01
    • 2019-01-24
    相关资源
    最近更新 更多