【问题标题】:Servlet open PDF in new windowServlet 在新窗口中打开 PDF
【发布时间】:2013-03-07 07:56:58
【问题描述】:

我的应用程序要求在新窗口中打开 PDF。要求是仅当 PDF 数据可用时才打开一个新窗口。我正在拨打服务电话以将 PDF 内容作为 bytearray 获取。如果服务返回 PDF 字节数组,那么我只需要打开一个新窗口来显示 PDF。我正在使用 jQuery 和 Spring。

我试过window.open target="_blank"。但问题是它在访问服务器之前立即打开一个窗口。下面是我刷新 PDF 的控制器代码。

response.setContentLength(pdfBytes.length);
ServletOutputStream out = response.getOutputStream();
out.write(pdfBytes);
out.flush();
out.close();

我尝试使用 Ajax,以便在收到回复后通过 window.open 打开一个窗口以显示 PDF - 但这也不起作用。

【问题讨论】:

    标签: jquery ajax spring servlets


    【解决方案1】:

    我认为您应该在呈现页面时(或之前)检查 pdf 内容,并显示带有 target="_blank" 的链接(如果有 pdf 内容)或纯文本(如果没有内容可用)。

    【讨论】:

    • 要求我们在加载页面时始终显示 pdf 的链接。一旦用户点击链接,服务器将返回 pdf 内容。如果服务器返回数据,那么我需要在新窗口中打开它。
    • 您有可以在浏览器中以 PDF 格式打开的 URL 吗?
    • 点击链接后,我将重定向到控制器中的请求映射 url。从控制器我调用服务以获取 pdf 作为字节数组。
    最近更新 更多