javascript - 从 JSON 创建可下载的 pdf 文件

标签 javascript html json angularjs

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

我尝试创建一个 HTML 元素来自动下载 pdf(这不是问题),问题是下载的 pdf 无法打开,因为它失败并报告错误,例如在 Adob​​e 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/

相关文章:

javascript - 将文档中的嵌套对象与可能匹配的数组进行匹配

javascript - 为不同的 SVG 应用不同的颜色

html - 如何在 Github/Markdown 中更改图像的大小?

php - 使用php mysql按半径搜索经纬度数据库

python - 我可以在 Python 中验证 JSON 模式中字符串的内容吗

java - jackson 无法识别的类(class)名称字段

javascript - asp.net 中的水印文本?

javascript - Google Maps API 和显示位置

javascript - 如何通过在元素外部单击将元素设置为只读

javascript - jQuery 拖放