如何将servlet生成的PDF嵌入到<object>标签中?

时间:2015-05-07 21:18:26

标签: java javascript servlets pdf jasper-reports

在我的servlet中,我使用Jasper生成PDF报告,如下所示:

        JasperRunManager.runReportToPdfStream(reportStream,servletOutputStream, parameters, conn);
        response.setContentType("application/pdf");
        servletOutputStream.flush();
        servletOutputStream.close();               

这是我生成PDF的AJAX调用。当对服务的调用成功完成并且我尝试提醒数据时,它会显示以“%PDF-1.4 ...”开头的二进制数据。

        $.ajax({
            url : pdfURL,
            success : function(data) {
                alert(data); //contains "%PDF-1.4..."

                //How do I put this "data" into an <OBJECT>?
                //This code below is NOT working
                var obj = $('<object type="application/pdf" width="100%" height="100%" border="2"></object>'); 
                obj.attr('src',data);   
                $('#rptDiv').append(obj);
            }
        });

现在如何将此PDF数据放入OBJECT元素并将其嵌入到DIV中?

1 个答案:

答案 0 :(得分:0)

我认为可能的解决方案是:

  1. HTML代码应该是这样的:

    <object data="pdfUrl" type="application/pdf">
        <embed src="pdfUrl" type="application/pdf"/>
    </object>
    
  2. 您可以使用二进制数据中的JavaScript构建文件,请参阅此处 如何做到这一点:How to build PDF file from binary string returned from a web-service using javascript
  3. 您可以在服务器文件夹中生成pdf文件并下载 通过网址。