Загрузка файла PDF в Angular Оставляет это пустым - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь загрузить PDF из API, но столкнулся с небольшой проблемой.Данные, кажется, возвращаются в порядке;Вот пример его возвращения:

pdf result

В приложении Angular я использую пакет ngx-filesaver для сохранения файлов.Он работает с другим PDF, над которым у меня есть немного больше контроля, чем в этом случае, и с CSV.Так что я знаю, что пакет работает в правильных ситуациях.Вот функция загрузки файла, которую я использую:

getGroup1094BTaxForm(year: string = '2017') {
    return this._http.get(`${this.groupBaseUrl}/taxes/1094/${year}`, { responseType: 'text' }).pipe(
        map((res: any) => {
            const blob = new Blob([res], { type: 'application/pdf' });
            this._fileSaver.save(<any>blob, 'group-1094b.pdf');
            return res;
        })
    );
}

Я попытался установить responseType в blob и text в запросе GET, а затем при создании blob после возвращения ответа я явно установил его на application/pdf.Эта же проблема возникает, когда я вынимаю строку, которая создает большой двоичный объект, и просто передаю ответ прямо в функцию _fileSaver.save.

Чего мне не хватает, чтобы сохранить файл, не оставляя его пустым?Я проверил этот ответ , но ни одно из решений не помогло мне.

1 Ответ

0 голосов
/ 17 октября 2018

Измените responseType с text на blob

getGroup1094BTaxForm(year: string = '2017') {
    return this._http.get(`${this.groupBaseUrl}/taxes/1094/${year}`, { responseType: 'blob' }).pipe(
        map((res: any) => {
            const blob = new Blob([res], { type: 'application/pdf' });
            this._fileSaver.save(<any>blob, 'group-1094b.pdf');
            return res;
        })
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...