Angular скачать pdf-файл с пустой страницей

Я пытаюсь загрузить pdf-файл из строки, которую я получил из своего бэкэнда, и преобразовать в blob в angular, но когда я открываю pdf-файл, у меня есть все страницы моего pdf-файла, но они пусты

Мой угловой код

 download() {
    const blob = new Blob([this.responseBody], {
      type: 'application/pdf'
    });
    const fileURL = window.URL.createObjectURL(blob);
    window.open(fileURL);
  }

Моя строка выглядит так:

%PDF-1.4 %ª«¬­ 1 0 obj << /Creator (Apache FOP Version 2.1) /Producer (Apache FOP Version 2.1) /CreationDate (D:20221014064448Z) >> endobj 2 0 obj << /N 3 /Length 3 0 R /Filter /FlateDecode >> stream xwXSçÇßsNö`$!l{¥@

Что не так с моим угловым кодом?

Можете ли вы показать свое фактическое тело ответа? Кажется странным обертывание этого объекта массивом.

Fabian Strathaus 14.10.2022 10:04
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
1
104
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если формат данных как base 64, сначала используйте приведенный ниже код,

 const byteArray = new Uint8Array(
  atob(this.responseBody)
    .split('')
    .map((char) => char.charCodeAt(0))
);
const url = window.URL.createObjectURL(
  new Blob([byteArray], { type: 'application/pdf' })
);
window.open(url, '_blank');

Если не использовать приведенный ниже код,

const url = window.URL.createObjectURL(
  new Blob([this.responseBody], { type: 'application/pdf' })
);
window.open(url, '_blank');

Другие вопросы по теме