Express 使用流输出pdf

Express 使用流输出pdf,express,pdfmake,Express,Pdfmake,如何使用expressjs输出pdf: var fs = require('fs'); var PdfPrinter = require('pdfmake/src/printer'); app.get('/', function (req, res) { var printer = new PdfPrinter(); var first = 'Another paragraph, this time a little bit longer to make sure, this

如何使用expressjs输出pdf:

var fs = require('fs');
var PdfPrinter = require('pdfmake/src/printer');

app.get('/', function (req, res) {
    var printer = new PdfPrinter();

    var first = 'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines';

    var dd = {
        content: [
            first,
            'Another paragraph'
        ]
    };
    var pdfDoc = printer.createPdfKitDocument(dd);
    pdfDoc.pipe(fs.createWriteStream('basics.pdf')).on('finish',function(){
        //success

    });
    pdfDoc.end();
});

您可以通过管道将输出传输到
res
(在确保设置了正确的
内容类型之后):


(虽然我不能说它能为我生成清晰的PDF,但独立运行时的代码或任何
pdfmake
示例都不能)

您可以通过管道将输出传输到
res
(在确保设置了正确的
内容类型之后):


(虽然我不能说它能为我生成清晰的PDF,但独立运行的代码或任何
pdfmake
示例也不能)

它工作得非常好,我只是忘记了结束流。它工作得非常好,我只是忘记了结束流。
app.get('/', function (req, res) {
  var printer = new PdfPrinter();
  var first   = 'Another paragraph, this time a little bit longer to make sure, this line will be divided into at least two lines';
  var dd      = {
    content: [
      first,
      'Another paragraph'
    ]
  };

  // Make sure the browser knows this is a PDF.
  res.set('content-type', 'application/pdf');

  // Create the PDF and pipe it to the response object.
  var pdfDoc = printer.createPdfKitDocument(dd);
  pdfDoc.pipe(res);
  pdfDoc.end();
});