我第一次使用iText +飞碟与XHTML页面使用JSF 2.0简单的注册表单与常规输入字段如firstName,lastName,电话号码一旦用户输入所有数据并点击“NEXT”按钮我必须将这个带有用户数据的XHTML页面转换为pdf。我如何能够精确地获得该页面的源HTML以及页面中包含的所有样式以及将其转换为pdf。目前我正在绑定这样的。如何使用itext +飞碟动态生成pdf使用itext +飞碟与java
public void createPDF() {
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
HttpSession session = (HttpSession) externalContext.getSession(true);
String url = "http://localhost:8080/MyPROJECT/faces/page1.xhtml;JSESSIONID=" + session.getId();
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");
OutputStream browserStream = response.getOutputStream();
renderer.createPDF(browserStream);
browserStream.close();
session.invalidate();
} catch (Exception ex) {
ex.printStackTrace();
}
facesContext.responseComplete();
}
但它抛出我这个例外。
ERROR: 'The string "--" is not permitted within comments.'
org.xhtmlrenderer.util.XRRuntimeException: Can't load the XML resource (using TRaX transformer). org.xml.sax.SAXParseException: The string "--" is not permitted within comments.
这是使用上面URL.Does该URL让我的网页与用户数据的下一个按钮的点击PDF转换它还是我使用错误的code.Please试图帮助我让我的页面的正确途径。例子感激。
感谢您的快速回答。但是,如果我使用上面的url,是否可以获取带有用户数据的XHTML页面?如何打印输入到PDF的HTMl文档?你是否认为我的方法是正确的 – mdp
嘿,我很困惑这里。你提到的上述两个API是飞碟的替代品,或者我需要与iText + FS一起使用吗?如果是这样,请你提供有关如何集成Jsoup/HTMLCleaner with iText + FS – mdp
我将它们与FS结合使用:** HTML ** - > ** JSoup或HtmlCleaner ** - > ** FlyingSaucer ** - > ** PDF **。 Jsoup或HtmlCleaner将修复输入Html中的许多错误,否则将会杀死FS。两者都可以逃脱Html实体 - 也许这可以解决您的问题与评论中的“ - ”。 – ollo