2016-06-14 3 views
1

Как вывести Ф с помощью 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(); 
}); 

ответ

2

Вы можете перенаправить вывод в res (после того, как убедитесь, что вы установили правильный Content-Type):

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(); 
}); 

(хотя я не могу сказать, что он дает читаемые PDF-файлы для меня, но и код при запуске автономный или в любом из примеров pdfmake)

+0

Это прекрасно работает, я просто забыл закончить поток. – vs4vijay