Angular-下载并显示PDF
Angular - Download and Display PDF
当前使用
https://github.com/stranger82/angular-utf8-base64
和
https://github.com/eligrey/FileSaver.js/
解码一个base64编码的PDF文件,我正在从一个剩余的API获取。
它的解码和下载都很好,但当我尝试查看它时,它是空白的。
我看过
AngularJS:在角度应用中显示blob(.pdf)
并尝试添加
responseType: 'arraybuffer'
然而,对于我的get请求,这会导致响应为null,并且没有从get请求返回任何数据。
其他文件似乎可以下载并渲染。
如有任何帮助,我们将一如既往地不胜感激!
代码:
function save() {
var fileContent = base64.decode(response.File.fileContent);
var file = new Blob([fileContent], {type: response.File.contentType});
saveAs(file, response.File.name);
}
$http.get(url.join('')).success(function(response) {
save(response);
}).error(function(error) {
console.log('The following error has occured' + error);
});
如果API Rest检索字节数组,您只需使用此js函数
OBS:data.payload必须是字节数组调用函数:下载服务.下载(data.payload,'downloadExcel','xls');下载服务。下载(data.payload,'downloadPDF','pdf');
(function() {
'use strict';
angular
.module('fileUtils')
.service('DownloadService', DownloadService);
DownloadService.$inject = ['$window'];
function DownloadService($window) { // jshint ignore:line
this.download = function (fileBytes, name, type) {
var fileName = '';
if (name) {
fileName = name + '.' + type;
} else {
fileName = 'download.' + type;
}
var byteCharacters = atob(fileBytes);
var byteNumbers = new Array(byteCharacters.length);
for (var i = 0; i < byteCharacters.length; i++) {
byteNumbers[i] = byteCharacters.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
var file = new Blob([byteArray], { type: 'application/' + type });
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(file, fileName);
} else {
//trick to download store a file having its URL
var fileURL = URL.createObjectURL(file);
var a = document.createElement('a');
a.href = fileURL;
a.target = '_blank';
a.download = fileName;
document.body.appendChild(a);
a.click();
}
};
}
})();
相关文章:
- javascript.点击显示嵌入的pdf
- JavaScript代码,用于在浏览器中显示字节数组中的PDF文件(非base64编码)
- 显示用于网站打印的PDF
- 如何使用jquery在工具提示上显示pdf文件
- 限制浏览器中显示的 PDF 的页数
- 通过发送POST参数在ExtJS 4中显示PDF
- 在Asp.net的iframe中显示特定的PDF页面
- 我想在灯箱中显示pdf文档
- window.open无法在显示pdf的jsp页面中工作
- 如何从输入字段在浏览器中显示PDF文件
- 在新窗口中显示pdf流
- 使用pdfmake在angularjs中生成pdf时未显示图像
- 嵌入的“PDF”文件未显示
- jqGrid-单击链接时在新窗口中显示PDF
- 如何发布到URL并打开一个新窗口以显示pdf格式的响应
- 在phonegap应用程序中显示pdf
- 使用pdf.js突出显示pdf中的一个部分
- 如何在浏览器中显示单词/ pdf二进制数据
- 加载PDF文件/网址在Safari浏览器中显示黑屏
- 窗口.打开打开PDF显示关于空白页