Преобразование байта[] в pdf не работает в angular 8 с ошибкой api(ошибка не удалось загрузить PDF-документ.)
Код Api здесь...
----------------------------------------------------------------------------------
[HttpGet] public HttpResponseMessage DownloadProductList( ) { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.MethodNotAllowed); byte[] plist = prepo.GetProductList("ProductListReport", "p"); response.Content = new ByteArrayContent(plist); response.Content.Headers.Add("x-fileName", "ProductListReport.pdf"); response.StatusCode = HttpStatusCode.OK; response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment"); response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf"); response.Content.Headers.ContentDisposition.FileName = "ProductListReport.pdf"; return response; }
-------------------------------------------------------------------------------------
сервис здесь----
--------------------------------------------------------------------------------------
getPdfDocument(): any { let headers = new HttpHeaders({ 'Content-Type': 'application/arraybuffer' }); return this.http .get(this.url+"/api/ProductReport/" , { headers: headers, responseType: 'blob' as 'arraybuffer', observe: 'response' as 'body' } ); }
---------------------------------------------------------------------------------------
компонент находится здесь--
--------------------------------------------------------------------------------------
){ this.service.getPdfDocument().subscribe((response)=>{ let file = new Blob([response], { type: 'application/pdf' }); var fileURL = URL.createObjectURL(file); window.open(fileURL); } );
Что я уже пробовал:
Ошибка
Не удалось загрузить PDF-документ.
Sandeep Mewara
Ваш тип ответа, кажется, не большого двоичного объекта. См. это аналогичное обсуждение: https://stackoverflow.com/questions/62042843/failed-to-load-pdf-document-angular-8
Рабочий пример; https://stackblitz.com/edit/angular-6qwrvh
Member 11567959
не работать