我需要从JSP JSF页面生成PDF。我在网上搜索过,但是我没有找到任何我应该怎么做的例子。我需要转换整个页面,或者可能只转换我在该页面上的图表。
P.S。我也在使用IceFaces。
答案 0 :(得分:7)
最简单的方法可能是capture the HTML使用Filter并使用合适的API将其转换为PDF,然后从application/pdf
返回Filter
数据。 IceFaces部分提交支持可能用于捕获组件树输出的子集,但您可能必须研究IceFaces HTTP请求的详细信息,以找出如何利用它。
答案 1 :(得分:2)
据我所知,这不是直接可行的。您可以使用Jasper Reports在服务器端生成pdf。或者,您可以使用PrintPDF这是一个firefox插件,从Web浏览器创建一个。
答案 2 :(得分:2)
您可能需要以下内容:
捕获页面的(X)HTML输出。这可以通过您的servlet中的以下代码完成:
InputStream is = new URL("http://localhost/foo/page.jsf").openStream();
将捕获的内容转换为pdf。请参阅Flying Saucer渲染器(以及 - this thread)
“发送”生成的pdf。也就是说,只需将您的pdf写入(打印)到response.getOutputStream()
,然后设置内容类型标题 - response.setContentType("application/pdf")
答案 3 :(得分:1)
这可能是一个答案。 阅读这篇文章:Combine JSF Facelets and the Flying Saucer XHTML Renderer