У меня есть генерация pdf на стороне сервера, и для этого я использую c # для чтения данных и генерации pdf с использованием iTectSharp.После того, как pdf сгенерирован, я возвращаю ответ на UI, а на UI JavaScript должен загрузить pdf файл.Но код java-скрипта не работает для загрузки pdf.
Заголовки ответа на запрос API следующие:
Cache-Control: no-cache
Content-Disposition: attachment; filename=ReportSummary.pdf
Content-Length: 84595
Content-Type: application/pdf
Date: Wed, 13 Feb 2019 05:11:03 GMT
Expires: -1
Pragma: no-cache
Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
После кода на сервере для API
using (var workStream = new MemoryStream())
{
using (var pdfWriter = new PdfWriter(workStream))
{
ConverterProperties props = new ConverterProperties();
HtmlConverter.ConvertToPdf(contents, pdfWriter,props);
byte[] byteInfo = workStream.ToArray();
var res = new HttpResponseMessage(HttpStatusCode.OK);
res.Content = new ByteArrayContent(byteInfo);
res.Content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
res.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "BenchmarkSummary.pdf"
};
return res;
}
}
Код для интерфейса API
Service.getReport(values).then(response => {
var blob=new Blob([response.data]);
const link = this.linkRef.current;
link.href= window.URL.createObjectURL(blob);
link.download="Report.pdf";
link.click();
})