【发布时间】:2015-05-13 11:38:32
【问题描述】:
public void createPDF() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
HttpSession session = (HttpSession) externalContext.getSession(true);
String url = "http://localhost:8080/comap/pages/admin/student.xhtml";
try {
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(url);
renderer.layout();
HttpServletResponse response = (HttpServletResponse) externalContext.getResponse();
response.reset();
response.setContentType("application/pdf");
response.setHeader("Content-Disposition","C://user//first.pdf");
java.io.OutputStream browserStream = response.getOutputStream();
renderer.createPDF(browserStream);
browserStream.close();
session.invalidate();
} catch (Exception ex) {
ex.printStackTrace();
}
facesContext.responseComplete();
}
这里是个例外..
java.lang.ClassCastException: org.xhtmlrenderer.render.BlockBox 不能转换为 org.xhtmlrenderer.newtable.TableBox
【问题讨论】:
-
太棒了。现在只需添加抛出异常的确切位置,您的问题是什么,预期的输出是什么......你知道的,标准的东西。
-
看起来像 XHTML 中的数据错误。在更小的 XHTML 文件上运行上述代码,直到找到导致错误的 XML。验证 XHTML。
标签: java itext flying-saucer