2017-03-29 57 views
1

所以我用html-pdf我的HTML轉換這裏是我的代碼:如何使用NodeJS將PDF緩衝區輸出到瀏覽器?

var pdf = require('html-pdf') 
var html = 'somehtmlfile.html' 

pdf.create(html).toBuffer(function (err, buffer) { 
     if (err) { 
      console.log(err) 
     } else { 
      console.log(buffer) 
      var pdfBuffer = new Buffer(buffer) 
      res.setHeader('Content-disposition', 'inline; filename="test.pdf"'); 
      res.setHeader('Content-type', 'application/pdf'); 
      res.send(pdfBuffer) 
     } 
} 

我沒有得到任何PDF文件是下載器,也不是一個PDF文件的瀏覽器中任何輸出。 console.log(buffer)是這樣的:

<Buffer 25 50 44 46 2d 31 2e 34 0a 31 20 30 20 6f 62 6a 0a 3c 3c 0a 2f 54 69 74 6c 65 20 28 fe ff 29 0a 2f 43 72 65 61 74 6f 72 20 28 fe ff 29 0a 2f 50 72 6f ... > 

有沒有一個簡單的方法來做到這一點?還是我做錯了?

我只想在瀏覽器中輸出pdf格式的緩衝區。

+0

哪個LIB是這樣的,你正在使用,以創建PDF(pdf.create)? –

+0

@DiegoZoracKy uhm我剛纔在帖子中說過 – FewFlyBy

回答

1

更改爲:

pdf.create(html).toStream(function(err, stream) { 
    if (err) { 
     console.log(err) 
    } else { 
     res.set('Content-type', 'application/pdf'); 
     stream.pipe(res) 
    } 
}); 
+0

成功,但沒有任何反應 – FewFlyBy

+0

什麼都沒有發生在哪裏?你使用的是哪個http框架給你'res'? –

+0

我正在使用快遞 – FewFlyBy