2013-03-18 97 views
2

我的应用程序要求在新窗口中打开PDF。要求只有在PDF数据可用时才打开一个新窗口。我正在拨打服务电话以获取PDF内容,作为bytearray。如果服务返回PDF bytearray,那么我只需要打开一个新窗口来显示PDF。我正在使用jQuery和Spring。我试过window.open target="_blank"。但问题是它在打到服务器之前立即打开一个窗口。以下是我的控制器代码来刷新PDF。Servlet在新窗口中打开PDF

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

我试着用Ajax所以,一旦我得到的回应我可以做一个window.open打开一个窗口来显示PDF - 但同样是行不通的。

回答

0

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

+0

要求是我们将在加载页面时总是显示pdf的链接。一旦用户点击链接,服务器将返回pdf内容。如果服务器返回数据,那么我需要在新窗口中打开它。 – user2183807 2013-03-18 21:27:19

+0

您是否有可能在浏览器中以PDF格式打开的URL? – 2013-03-18 21:50:03

+0

点击链接后,我将重定向到控制器中的请求映射URL。我从控制器调用服务来获取pdf作为字节数组。 – user2183807 2013-03-19 13:17:50