基本上,我遇到的问题是我已查询服务器以返回以 JSON 格式返回的 pdf 文件。
我尝试创建一个 HTML 元素来自动下载 pdf(这不是问题),问题是下载的 pdf 无法打开,因为它失败并报告错误,例如在 Adobe Reader 中:
"Adobe reader could not open 'test.pdf' because is either not supported file type or because the file has been damaged (for example, it was sent as an email attachment and wasn't correctly decoded)"
我正在使用 AngularJS 对服务器进行 ajax 调用以获取 JSON 对象,然后尝试对其进行格式化并下载:
...
var pdf = pdfservice.get({id:pdfId});
console.log(pdf);
pdf.$promise.then(function(data){
var element = angular.element('<a/>');
element.attr({
href: 'data:attachment/pdf;charset=utf-8,' + encodeURI(data),
target: '_self',
download:'test.pdf'
})[0].click();
});
...
更新
使用 Angular 的 $http 服务并使用相同的代码,它下载了 pdf,但它是空的,所以可能是编码或格式化 json 对象的问题......
...
$http({ method: 'GET', url: 'http://www.testweb.com/pdf/1')
.success(function(data) {
console.log(data);
var element = angular.element('<a/>');
element.attr({
href: 'data:attachment/pdf;charset=utf-8,' + encodeURI(data),
target: '_self',
download:'test.pdf'
})[0].click();
});
...
最佳答案
PDF 文件与文本(或 json)文件不同,请尝试使用类似 JSPDF 的库制作客户端 PDF 文件。
关于javascript - 从 JSON 创建可下载的 pdf 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26677904/