2015-04-03 54 views
6

我是新來的node.js和jsreport,但我試圖做的是使用node.js在內存中創建一個pdf,然後將其保存到磁盤。我需要這樣做,因爲它將作爲AWS Lambda函數運行。如何將jsreport渲染器保存到nodeJs文件中?

var fs = require('fs'); 
require("jsreport").render("<h1>Hi there!</h1>").then(function(out) { 
    //pipe pdf with "Hi there!" 
    fs.writeFile('C:\\helloworld.pdf', out, function (err) { 
     if (err) return console.log(err); 
     console.log('Hello World > helloworld.txt'); 
    }); 
fs.close(); 
    console.log("The End"); 
}); 

雖然這運行輸出pdf將不會在Adobe Reader中打開,所以我假設文件輸出不是有效的PDF。

這需要NPM安裝jsreport

+0

僅供參考'.writeFile'是異步。 – 2015-04-03 18:38:44

回答

5

從我從jsreport網站收集(雖然我一直無法覈實,因爲沒有對我自己的網站工作的例子),它看起來像out ISN不會呈現(PDF)數據,而是包含(除其他外)流的對象。

這使我相信,這可能工作:

require("jsreport").render("<h1>Hi there!</h1>").then(function(out) { 
    out.result.pipe(fs.createWriteStream('c:\\helloworld.pdf')); 
});