【发布时间】:2014-01-14 14:55:46
【问题描述】:
我的要求: 单击 JSF2 中的“打印”按钮并打开一个 pdf 文件以使用 xhtml 页面中的数据进行打印。
以下代码打开一个没有数据的空白 pdf 文件。我希望 pdf 显示来自 xhtml 页面(URL)的数据
JSF 代码: JSF 有一些字段来显示数据
<h:commandButton id="printButton" value="Print" actionListener="#{myBean.print}" />
MyBean.Java 代码:
public void print()
{
ExternalContext externalContext =FacesContext.getCurrentInstance().getExternalContext();
HttpServletResponse response = (HttpServletResponse)externalContext.getResponse();
String url = request.getRequestURL();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Document document = new Document(PageSize.LETTER);
PdfWriter.getInstance(document, baos);
document.open();
document.add(new Paragraph(" Hello"));
response.setHeader("Expires", "0");
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "inline;filename=\"" + PDF_FILE_NAME + "\"");
response.setContentLength(baos.size());
ServletOutputStream out = response.getOutputStream();
baos.writeTo(out);
out.flush();
out.close();
document.close();
System.out.println("Done.");
FacesContext.getCurrentInstance().responseComplete();
}
任何帮助将不胜感激。 提前致谢,
【问题讨论】: