0
サーバー(Asp.Netコア)でPDFを生成し、(角)ブラウザで取得します。私はPDFレポートを生成するItextSharp</strong><strong>Asp.Netコア</strong>と<strong>を使用してブラウザに送信してい
角度(typescriptです)を使用して、次に[HttpGet]
public async Task<IActionResult> GetStream(string ids)
{
try
{
List<int> labRequestIds = JsonConvert.DeserializeObject<List<int>>(requestIds);
MemoryStream ms = new MemoryStream();
Document doc = new Document(PageSize.A4, 30f, 30f, 30f, 30f);
PdfWriter writer = PdfWriter.GetInstance(doc, ms);
doc.Open();
await CreatePlateDoc(labRequestIds, doc);
doc.Close();
writer.Flush();
ms.Seek(0, SeekOrigin.Begin);
return File(ms, "application/pdf");
}
}
私はそのようなブラウザーで応答を得る: サービス:
getStream(requestIds: Array<number>) {
return new Promise((resolve, reject) => {
this.http.get(AppConfig.LrmApiUrl + '/fileGenerator/plates'
+ '?requestIds=' + JSON.stringify(requestIds)
, { headers: this.authService.getHeaders() })
.subscribe((data:any) => {
console.log(data);
if (data) {
resolve(data._body);
}
},
err => reject(Tools.handleResponseError(err))
);
});
}
とコントローラでは、そのようなFilesaver.js
で作成したPDFをダウンロードしよう:
downloadClick() {
this._fileGeneratorService.getPlateStream(this.selectedRequestIds)
.then(data => {
let saveAs = require('file-saver');
let name = this.selectedRequests.map(function (x) {
return x.code;
}).join();
let blob = new Blob([data], { type: 'application/pdf });
saveAs(blob, name);
})
.catch(err => console.log(err));
}
しかし、動作しません。ダウンロードしたpdfは空ですが、情報があります。終わり
この問題を解決する方法の任意のアイデア?前もって感謝します。 –
「空ですが情報はありますか?」とはどういう意味ですか? 0バイトですか?それとも空白のページがありますか? –
メモ帳で開くと++がコードを持っていますが、Adobeで開くとページが空白になります。 –