从JSON创建可下载的pdf文件

Create downloable pdf file from JSON

本文关键字:pdf 文件 下载 JSON 创建      更新时间:2023-09-26

基本上,我遇到的问题是我向服务器查询以返回一个以JSON格式返回的pdf文件。

我尝试创建一个HTML元素来自动下载pdf(这不是问题所在),问题是下载的pdf无法打开,因为它失败并报告错误,例如在Adobe Reader:中

"Adobe阅读器无法打开‘test.pdf’,因为它不是支持的文件类型,或者因为文件已被损坏(例如,它是作为电子邮件附件发送的,没有正确解码)"

我正在使用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文件。