【问题标题】:How to render a pdf from bytestream in ajax response如何在ajax响应中从字节流呈现pdf
【发布时间】:2013-06-08 06:24:25
【问题描述】:

我正在开发一个移动应用程序。我们正在使用 jquery-mobile。

我们可以选择查看或下载 pdf 格式的记录。我没有后端的控制权。我将 json 对象中的 pdf 数据作为 ajax 响应获取。我想读取该数据并以 pdf 格式显示。我有下一个和上一个链接也在页面中,所以我们需要在 div 中显示 pdf。

var data = {  
    .... : ....,  
    .... : ....,  
    "pdfstream" : "KioqKioqKioqKioq......",  
    ..... : ....  
}  

我能够读取所有数据,但不确定如何读取该字节流并在页面中显示为 pdf。

更新: 我的代码工作正常。但是从服务器获取的字节流是错误的。

    var obj = $('<object type="application/pdf" width="100%" height="100%" border="2"></object>'); 
        obj.attr('data','data:application/pdf;base64,'+bytestream);  
        $('#divContainer').append(obj);  

它在 IE 中期望的所有浏览器中都能正常工作。需要验证为什么它在 IE 中不起作用。

【问题讨论】:

    标签: javascript json jquery jquery-mobile pdf-generation


    【解决方案1】:

    你试过了吗

    http://mozilla.github.com/pdf.js/

    此外,您可以访问以下链接,问题几乎相似:

    How to display a PDF stream in a browser using javascript

    【讨论】:

    • 感谢您的回复。我通过设置响应标头尝试了直接从响应中获取 pdf 流的 pdf.js。但是我得到了一个 json 对象。 var output = {"downloadpdf":"KioqKioqKioqKioq................."} 我尝试了以下链接中提到的示例。它在 urlbar 中显示我所有的字节流,并且 pdf 已损坏。它抛出一个错误,如“无法加载 pdf 文档”。
    【解决方案2】:

    不要在 ajax 中显示它,将 pdf 显示为 iframe 的源然后它会起作用

    【讨论】:

    • 我们在服务器端没有控制权。我们将得到json响应只包含字节流中的pdf数据。
    猜你喜欢
    • 1970-01-01
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2019-11-02
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    相关资源
    最近更新 更多