У меня есть веб-сервис, который возвращает его содержимое в формате PDF. Я хочу загрузить этот файл в формате pdf, когда пользователь нажимает на ссылку. Javascript код, который я написал в UI выглядит следующим образом:PDF пуст при загрузке с помощью javascript
$http.get('http://MyPdfFileAPIstreamURl').then(function(response){
var blob=new File([response],'myBill.pdf',{type: "text/pdf"});
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="myBill.pdf";
link.click();
});
«ответ» содержит PDF байтовый массив из сервлета OutputStream из «MyPdfFileAPIstreamURl». А также поток не зашифрован.
Поэтому, когда я нажимаю на ссылку, файл PDF загружается с размером около 200 КБ. Но когда я открываю этот файл, он открывается пустыми страницами. Начальное содержимое загруженного pdf-файла находится на изображении.
Я не могу понять, что здесь не так. Помогите !
Это загруженный файл PDF, начиная содержание:
Вы используете тип носителя * "текст/PDF" *; это задает проблемы, ** pdf не является текстовым форматом, он является двоичным ** и рассматривает его как текст, который может его уничтожить. Попробуйте ** application/pdf ** вместо этого. – mkl
@mkl Изменил его в приложении/pdf, но вопрос все тот же. – programmer129
Неправильно использовать текст/pdf здесь. Кроме того, ваш скриншот выглядит как где-то вдоль строки, какой-то код обрабатывает файл как текст, читает его с помощью одной байтовой кодировки (Latin1) и записывает его с помощью UTF-8. – mkl