通过ajax在浏览器选项卡中显示pdf

时间:2015-10-30 05:49:51

标签: javascript java ajax spring pdf

我使用jquery.fileDownload和Spring通过Ajax下载.pdf文件。

该应用程序运行正常,pdf正在成功下载。问题是,我没有下载,而是希望在新的浏览器选项卡中打开pdf。

任何人都可以告诉我一些解决方案吗

服务器端

我在服务器端使用Spring

@RequestMapping(value = "exportPDF", method = RequestMethod.POST, produces = APP_JSON)
@ResponseBody
public void getPDF(final HttpServletResponse response, @RequestParam(value = "empId", required = true) final String empId) throws IOException, Exception
{
    final byte[] pdf= ExportPDFUtil.getFileBytes(empId); // get the file bytes
    final OutputStream output = getOutputStream(response);
    response.setHeader("Content-Disposition", "attachment; filename=documents_" + new DateTime() + ".pdf");
    response.setContentType(CONTENT_TYPE);
    response.setContentLength(pdf.length);
    write(output, pdf);
}

客户端

在客户端,我使用的是AngularJS

$downloadXLS = function(id)
{
    $.fileDownload('/user/exportPDF', 
    {
        httpMethod : "POST",
        data : {
            empId : id
        }
    }).done(function(e, response)
    {
     // success
    }).fail(function(e, response)
    {
     // failure
    });
}

2 个答案:

答案 0 :(得分:0)

从Mozilla检查PDF.js。大多数应用程序使用它来在浏览器中显示PDF。

答案 1 :(得分:0)

尝试使用它:

response.setHeader("Content-Disposition", "inline; 
                  filename=documents_" + new DateTime() + ".pdf");

而不是:

response.setHeader("Content-Disposition", "attachment;
                  filename=documents_" + new DateTime() + ".pdf");