我想将这个PDF文件显示给用户,而不需要在我的服务器上保存PDF文件。
将其写入响应的输出流。假设您使用iText来生成PDF,将响应的输出流传递到PdfWrter#getInstance()
。
public void download() throws IOException {
FacesContext context = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline; filename=\"" + filename + "\"");
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, response.getOutputStream());
document.open();
// Build document.
context.responseComplete();
}
然而,这将在浏览器中全部显示PDF。如果您想要另存为对话,只需将标头中的inline
部分更改为attachment
。或者,如果您确实希望将其嵌入到<object>
中,则需要创建servlet并在doGet()
方法内执行上述response
作业,最后让<object>
的URL指向该servlet。
需要更多来自JSP的行。 JSP中是否只有PDF对象?那么为什么不使用一个servlet将数据提供给浏览器并让它呈现呢? – 2012-02-25 01:19:05