Java:如何从JSP JSF页面生成PDF文件?

时间:2009-12-27 13:06:56

标签: java pdf jsf icefaces

我需要从JSP JSF页面生成PDF。我在网上搜索过,但是我没有找到任何我应该怎么做的例子。我需要转换整个页面,或者可能只转换我在该页面上的图表。

P.S。我也在使用IceFaces。

4 个答案:

答案 0 :(得分:7)

最简单的方法可能是capture the HTML使用Filter并使用合适的API将其转换为PDF,然后从application/pdf返回Filter数据。 IceFaces部分提交支持可能用于捕获组件树输出的子集,但您可能必须研究IceFaces HTTP请求的详细信息,以找出如何利用它。

答案 1 :(得分:2)

据我所知,这不是直接可行的。您可以使用Jasper Reports在服务器端生成pdf。或者,您可以使用PrintPDF这是一个firefox插件,从Web浏览器创建一个。

答案 2 :(得分:2)

您可能需要以下内容:

  1. 捕获页面的(X)HTML输出。这可以通过您的servlet中的以下代码完成:

    InputStream is = new URL("http://localhost/foo/page.jsf").openStream();
    
  2. 将捕获的内容转换为pdf。请参阅Flying Saucer渲染器(以及 - this thread

  3. “发送”生成的pdf。也就是说,只需将您的pdf写入(打印)到response.getOutputStream(),然后设置内容类型标题 - response.setContentType("application/pdf")

答案 3 :(得分:1)

这可能是一个答案。 阅读这篇文章:Combine JSF Facelets and the Flying Saucer XHTML Renderer