jsreport を書き込み可能なストリームに書き込もうとしています。書き込み可能なストリームにバッファを出力すると、pdf の説明が表示されますが、pdf ファイルに保存すると、pdf ファイルが破損しているというエラーが表示されます。
function streamtoPdf(template, callback) {
var ws = new stream;
ws.writable = true;
ws.bytes = 0;
var decoder = new StringDecoder('utf8');
ws.write = function (buf) {
ws.bytes += buf.length;
console.log(buf);
ws.pdf += decoder.write(buf);
}
ws.end = function (buf) {
if (arguments.length) ws.write(buf);
ws.writable = false;
// console.log(ws.pdf)
callback(ws.pdf);
}
renderPDF(template, ws);
}
//create a pdf from a template.
function renderPDF(template, writableStream) {
jsreport.render("<h1>Hello world</h1>").then(function (out) {
out.result.pipe(writableStream);
}).catch(function (e) {
res.end(e.message);
});
}
jsreport を使用すると、 hello worldout.result.pipe(res)でpdf が取得されますが、私の方法ではエラーが発生します。誰かが私が間違っていることを見ていますか?