首页 > 解决方案 > 如何将生成的 pdf 保存在项目文件夹 Node Jasper Reports 中?

问题描述

我正在使用一个名为Node Jasper的库。Pdf 也通过动态传递的参数生成。我想将该文件保存在项目文件夹中。有人可以帮助我如何实现这一目标吗?下面是截图

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)
}

标签: node.jsjasper-reports

解决方案


使用创建二进制数据的缓冲区new Buffer(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)

    }

推荐阅读