2017-08-07 9 views
0

HTMLページをPDFファイルに変換し、ノードのapi呼び出しへの応答としてPDFを送信する必要があります。そのために、私はwkhtmltopdfパッケージを使用してHTMLをPDFに変換しています。ノードjsの応答としてダウンロードするファイルを送信する方法

var express = require("express"); 
var http= require("http"); 
var app = express(); 
var wkhtmltopdf = require('wkhtmltopdf'); 
var fs = require('fs'); 
var res1 = fs.createWriteStream('out2.pdf'); 


app.get('/', function (req, res) { 
    res.send('Hello World!') 
}); 


app.get('/getPDF',function(req, res){ 
    wkhtmltopdf('<h1>Test</h1><p>Hello world</p>').pipe(res1); 
    res.setHeader('content-type', 'application/pdf'); 
    res.send(res1); 

}); 

app.listen(3000, function() { 
    console.log('Example app listening on port 3000!') 
}); 

をapp.jsしかし、それはプロジェクトフォルダにout2.pdf作成しています。しかし、私はエラー

エラー

Example app listening on port 3000! 
events.js:163 
     throw er; // Unhandled 'error' event 
    ^

Error: write after end 
    at writeAfterEnd (_stream_writable.js:191:12) 
    at WriteStream.Writable.write (_stream_writable.js:238:5) 
    at Socket.ondata (_stream_readable.js:555:20) 
    at emitOne (events.js:96:13) 
    at Socket.emit (events.js:191:7) 
    at readableAddChunk (_stream_readable.js:176:18) 
    at Socket.Readable.push (_stream_readable.js:134:10) 
    at Pipe.onread (net.js:563:20) 

私の要件

答えて

0

てみてください、

を達成するためにどのように任意のアイデアの下に取得しています代わりに、ブラウザにダウンロード可能なファイルとしてout2.pdfを取得することができません
app.get('/getPDF',function(req, res){ 
    res.setHeader('content-type', 'application/pdf'); 
    wkhtmltopdf('<h1>Test</h1><p>Hello world</p>').pipe(res1).pipe(res); 
}); 

wkhtmltopdf~responseストリームの結果をパイプします。

関連する問題