Right Juergen! would you like to volunteer ? :-)
SpringMVC has some *pdf* based rendering stuff. -Matthias On 1/17/06, Jurgen Lust <[EMAIL PROTECTED]> wrote: > Theoretically, you could write a new RenderKit which renders a JSF page to > PDF instead of HTML. It would probably even work with AcroForms... > > Jurgen > > Simon Kitching schreef: > Hi Hans, > > What Matthias describes below is where you have a JSF page, and you want > a button labelled "generate report" or similar that creates some kind of > PDF document then serves it up to the user's browser. But that PDF isn't > "a picture of the current page", it's a PDF generated using data pulled > from a database or something like that. If that's really what you are > after then FOP is a good tool for that; your java code creates some xml > using the FO schema, then feeds it to the FOP library. Nothing to do > with JSF though. > > There is no way to "generate a pdf that looks like my html screen" from > java code which I believe is what you want to do. Some browsers provide > a "print page" option, and some operating systems provide a "print to > PDF" option in the print dialog so that's one way of creating a PDF that > contains the current page but it's manual. > > The FOP project is here: > http://xmlgraphics.apache.org/fop/ > > Regards, > > Simon > > > > > On Tue, 2006-01-17 at 09:58 +0100, Hansjörg Meuschel wrote: > > > Hi Matthias, > > thanks for your help... a friend of mine also recommended FOP in > between. I took a look at the api but it seems to me that FOP uses XML > to generate a PDF? ! > --> So how can I convert my jsf page into the required FOP-input > format?? I could not find any docu to fop (except some broken links...) ? > > regards, > Hans > > > > Matthias Wessendorf wrote: > > > > Hansjoerg, > > we have worked with Apache FOP for creating pdfs. iText or > JasperReports are also lib that help you on that task. > > inside of your backing bean method (referenced by a commandLink or > cmdButton) you can do somthing like this: > > public String pdf() { > > FacesContext ctx = FacesContext.getCurrentInstance(); > > if(!ctx.getResponseComplete()) { > > > HttpServletResponse response = (HttpServletResponse) > ctx.getExternalContext().getResponse(); > > byte[] file = //do some FOP, or ... stuff; > > response.setContentType("application/pdf"); > response.setHeader("Content-Disposition", "inline; > filename=\"foo.pdf\""); > response.setContentLength(file.length); > > OutputStream out = response.getOutputStream(); > out.write(file, 0, file.length); > out.flush(); > out.close(); > > ctx.responseComplete(); > > return null; > } > > > This will work in p(l)ain servlet or struts world too (expect of the > usage of jsf api (like FacesContext)) > > However, the *magic* here is the responseComplete() > <from_java_doc> > Signal the JavaServer Faces implementation that the HTTP response for > this request has already been generated (such as an HTTP redirect), > and that the request processing lifecycle should be terminated as soon > as the current phase is completed. > </from_java_doc> > > and yes... it's getResponseComplete() instead of isResponseComplete() > > HTH, > Matthias > > > On 1/15/06, Hansjörg Meuschel <[EMAIL PROTECTED]> wrote: > > > > > Hi folks, > does anybody know what is the easiest way to get a jsf page as pdf > download? Are there any libraries available for free? > > > > > -- > Matthias Wessendorf > Zülpicher Wall 12, 239 > 50674 Köln > http://www.wessendorf.net > mwessendorf-at-gmail-dot-com > > > > > > > > -- > Among flowers, the cherry blossom. > Among men, me. > > > -- Matthias Wessendorf Zülpicher Wall 12, 239 50674 Köln http://www.wessendorf.net mwessendorf-at-gmail-dot-com

