Node.js 如何在项目文件夹节点Jasper Reports中保存生成的pdf?
我正在使用一个名为。Pdf也通过动态传递的参数生成。我想将该文件保存在项目文件夹中。有人能帮我如何做到这一点吗?下面是鹬Node.js 如何在项目文件夹节点Jasper Reports中保存生成的pdf?,node.js,jasper-reports,Node.js,Jasper Reports,我正在使用一个名为。Pdf也通过动态传递的参数生成。我想将该文件保存在项目文件夹中。有人能帮我如何做到这一点吗?下面是鹬 exports.jasperdemo = (req, res) => { console.log(req.body) var report = { report: 'hw', data: { parameter1: req.body.parameter1, parameter
exports.jasperdemo = (req, res) => {
console.log(req.body)
var report = {
report: 'hw',
data: {
parameter1: req.body.parameter1,
parameter2: req.body.parameter2
},
}
var pdf = jasper.pdf(report);
res.set({
'Content-type': 'application/pdf',
'Content-Length': pdf.length
});
fs.writeFile("Test.pdf",res.body);
res.send(pdf)
}
您只需在
fs.writeFile()函数中的文件名之前添加目录即可:
exports.jasperdemo = (req, res) => {
console.log(req.body)
var report = {
report: 'hw',
data: {
parameter1: req.body.parameter1,
parameter2: req.body.parameter2
},
}
var pdf = jasper.pdf(report);
res.set({
'Content-type': 'application/pdf',
'Content-Length': pdf.length
});
// Added your change here
fs.writeFile("./your/directory/Test.pdf",res.body);
res.send(pdf)
}
使用newbuffer(pdf,“binary”)
创建二进制数据的缓冲区,并传递它而不是res.body查找附加的代码
exports.jasperdemo = (req, res, next) => {
var report = {
report: 'hw',
data: {
parameter1: req.body.parameter1,
parameter2: req.body.parameter2
}
}
var pdf = jasper.pdf(report);
res.set({
'Content-type': 'application/pdf',
'Content-Length': pdf.length
});
fs.writeFile("./reports/Test.pdf",new Buffer(pdf, 'binary'), ()=>{
console.log('successful');
});
res.send(pdf)
}
Brother现在我可以将文件保存在文件夹中,但现在它给了我一个错误-加载PDF文档失败。生成时PDF已损坏。JSON中的一个错误位于data:{}
,因为在最后一个大括号后有一个逗号,引擎认为会有另一个属性,但没有。