Как сохранить сгенерированный pdf в папке проекта Node Jasper Reports? - PullRequest
0 голосов
/ 30 января 2019

Я использую библиотеку под названием 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)
}

Ответы [ 2 ]

0 голосов
/ 30 января 2019

создайте буфер двоичных данных, используя 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)

    }
0 голосов
/ 30 января 2019

Вы можете просто добавить каталог перед именем файла в вашей функции 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)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...