【发布时间】:2012-03-13 04:13:52
【问题描述】:
我是 Spring MVC 的新手,但我对它的功能印象深刻。
我正在使用 3.1.0-RELEASE,我必须显示 PDF 以响应 form:form 提交。
这是我在控制器中编写的(小)代码:
@RequestMapping(value = "new_product", method = RequestMethod.POST, params = "print")
@ResponseBody
public void saveAndShowPDF(ModelMap map, ShippingRequestInfo requestInfo, HttpServletRequest request, HttpServletResponse httpServletResponse) throws IOException {
saveProductChanges(map, requestInfo, request, httpServletResponse);
httpServletResponse.setContentType("application/pdf");
byte[] pdfImage = productService.getPDFImage(requestInfo.getRequestId());
httpServletResponse.getOutputStream().write(pdfImage);
}
此代码将 PDF 字节 [] 发送回原始窗口。
如何让 PDF 显示在单独的窗口中,以便我仍然可以在原始浏览器窗口中显示其他内容?最好的方法是使用客户端 PDF 视图程序(Adobe Reader、FoxIt 等)显示 PDF,但我可以在单独的浏览器窗口中显示 PDF。
编辑: 我决定设置 Content-Disposition 以便浏览器显示一个保存/打开框,用户可以在其中打开 Adobe(丢失主浏览器页面)。
httpServletResponse.setHeader("Content-Disposition","attachment;filename=cool.pdf");
谢谢大家!
【问题讨论】:
标签: java pdf browser spring-mvc