【发布时间】:2010-12-30 06:29:24
【问题描述】:
我需要从 JSP JSF 页面生成 PDF。我已经搜索了网络,但我没有找到任何关于我应该如何执行此操作的示例。我需要转换整个页面,或者可能只转换该页面上的图表。
附:我也在使用 IceFaces。
【问题讨论】:
我需要从 JSP JSF 页面生成 PDF。我已经搜索了网络,但我没有找到任何关于我应该如何执行此操作的示例。我需要转换整个页面,或者可能只转换该页面上的图表。
附:我也在使用 IceFaces。
【问题讨论】:
您可能需要以下内容:
捕获页面的 (X)HTML 输出。这可以通过您的 servlet 中的以下代码来完成:
InputStream is = new URL("http://localhost/foo/page.jsf").openStream();
将捕获的内容转换为 pdf。请参阅 Flying Saucer 渲染器(以及另外 - this thread)
“发送”生成的 pdf。也就是说,只需将您的 pdf 写入(打印)到response.getOutputStream(),并设置一个 Content-Type 标头 - response.setContentType("application/pdf")
【讨论】:
这可能是一个答案。 阅读这篇文章:Combine JSF Facelets and the Flying Saucer XHTML Renderer
【讨论】:
最简单的方法可能是使用Filter 转换为capture the HTML 并使用合适的API 将其转换为PDF,然后从Filter 返回application/pdf 数据。 IceFaces 部分提交支持可能可用于捕获组件树输出的子集,但您可能必须研究 IceFaces HTTP 请求的详细信息才能弄清楚如何利用它。
【讨论】:
据我所知,这是不可能的。您可以使用Jasper Reports 在服务器端生成pdf。或者,您可以使用 PrintPDF 这是一个 Firefox 插件,从网络浏览器创建一个。
【讨论】: