Наконец-то я получил jsreportonline, по крайней мере, для создания файла. Вот мой код:jsreportonline - Как сохранить в pdf-файле
request.post({
url: 'https://xxxx.jsreportonline.net/api/report',
json: true,
headers: {
"Content-Type": "application/json",
"Authorization" : "Basic "+new Buffer(username:pwd).toString('base64')
},
body: {
"template" : {'shortid" : xxxxx},
"data" : xxxx,
}
}, function(err, res, body) {
**** HERE IS THE PROBLEM ****
});
Я понятия не имею, как писать вывод в формате PDF, хранящегося в переменной «тела» в файл. Я пробовал:
var pbs = fs.createWriteStream('./report.pdf');
pbs.write(body);
pbs.end();
Я пробовал:
var pbs = fs.createWriteStream('./report.pdf', {defaultEncoding: 'binary'});
... но файл PDF никогда не отображается должным образом. Я знаю, что код работает, потому что я могу установить опцию на вызов:
"options" : {
"reports" : {"save" : true}
}
... и отчет сохраняется на мой jsreportonline счет и делает хорошо.
Спасибо за любую помощь.
Создает отчет сейчас. Спасибо. Однако, когда он возвращается из jsreport и создает отчет в формате pdf, он не отображается должным образом ни в Firefox, ни в Chrome. Однако, если я открываю сохраненный pdf-файл в Firefox/Chrome, он отлично выглядит. Только когда он возвращается, он не может отобразить. – ImTalkingCode
Хм, возможно, попробуйте вернуть статический файл PDF и устранить неполадки, если он будет работать без jsreport. –
Я считаю, что теперь это состояние гонки (предположим) async .pipe (fs.createWriteStream (...)), и когда я звоню fs.readFile. – ImTalkingCode