How to output a PDF buffer to browser using NodeJS?
Change to:
pdf.create(html).toStream(function(err, stream) { if (err) { console.log(err) } else { res.set('Content-type', 'application/pdf'); stream.pipe(res) }});
you can use the below function or
html.create(somehtmlfile.html).toStream()
function to convert a buffer to stream
function bufferToStream(buffer) { let stream = new Duplex(); stream.push(buffer); stream.push(null); return stream; }
download or view a pdf in browser if it's a stream
var pdf = require('html-pdf')var html = 'somehtmlfile.html'exports.generatePdf = (req, res) =>{ pdf.create(html).toBuffer(function (err, buffer) { if (err) { console.log(err) } else { console.log(buffer) bufferToStream(buffer).pipe(res) } }}
pdf.create(html).toBuffer(function (err, buffer) { if (err) { console.log(err) } else { console.log(buffer) res.header('Content-type', 'application/pdf') res.send(buffer) }}