Ich habe endlich die jsreportonline mindestens die Datei generieren. Hier ist mein Code:jsreportonline - Wie in PDF-Datei speichern
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 ****
});
Ich habe keine Ahnung, wie die PDF-Ausgabe in Variable ‚Körper‘ in einer Datei gespeichert zu schreiben. Ich habe versucht:
var pbs = fs.createWriteStream('./report.pdf');
pbs.write(body);
pbs.end();
Ich habe versucht:
var pbs = fs.createWriteStream('./report.pdf', {defaultEncoding: 'binary'});
... aber die PDF-Datei wird nie richtig angezeigt. Ich weiß, dass der Code funktioniert, weil ich eine Option auf den Anruf einstellen:
"options" : {
"reports" : {"save" : true}
}
... und der Bericht zu meinem jsreportonline Konto gespeichert und macht in Ordnung.
Danke für jede Hilfe.
Es erstellt den Bericht jetzt. Vielen Dank. Wenn es jedoch von jsreport zurückkehrt und den PDF-Bericht erstellt, wird es weder in Firefox noch in Chrome ordnungsgemäß wiedergegeben. Wenn ich jedoch die gespeicherte PDF-Datei in Firefox/Chrome öffne, ist es in Ordnung. Nur wenn es zurückkommt, wird es nicht wiedergegeben. – ImTalkingCode
Hm, vielleicht versuchen, static pdf-Datei zurück und Fehlerbehebung, wenn es funktioniert ohne jsreport –
Ich glaube, jetzt ist es eine Race-Bedingung zwischen (ich nehme an) die asynchrone .pipe (fs.createWriteStream (...)) und wenn ich rufe fs.readFile. – ImTalkingCode