I need to generate a PDF from a JSP JSF page. I have searched the net, but I didn't found any examples of how should I do this. I need to transform the whole page, or maybe only the charts that I have on that page.
P.S. I'm also using IceFaces.
I need to generate a PDF from a JSP JSF page. I have searched the net, but I didn't found any examples of how should I do this. I need to transform the whole page, or maybe only the charts that I have on that page.
P.S. I'm also using IceFaces.
The easiest way is probably to capture the HTML using a Filter and convert that to PDF using a suitable API, then return the application/pdf
data from the Filter
. The IceFaces partial-submit support can probably be used to capture a subset of the component tree output, but you'll probably have to study the details of the IceFaces HTTP requests to figure out how to leverage that.
As far as I know this isn't directly possible. You can use Jasper Reports to generate a pdf on the server side. Or, you can use PrintPDF which is a firefox plugin to create one from the web browser.
You will probably need the following:
Capture the (X)HTML output of your page. This can be done via the following code in a servlet of yours :
InputStream is = new URL("http://localhost/foo/page.jsf").openStream();
Transform the captured content to pdf. See the Flying Saucer renderer (and additionally - this thread)
"Send" the generated pdf. That is, simply write (print) your pdf to the response.getOutputStream()
, and set a Content-Type header - response.setContentType("application/pdf")
© 2022 - 2024 — McMap. All rights reserved.