Hi FOP devs,
I' ve developed a form extension for XSL-FO for an university project. It's an extension to FO like the fox extensions. With it you can declare and define the usual form elements like edit fields, radio buttons, check boxes, combo boxes, list boxes, comment fields and buttons. They are inserted into a document as inline objects, so that they flow like normal text. As a proof of concept I've extended fop-0.20.5 to support my form extension. I'm using the system around ExtensionObj to make fop understand my elements and I've extended the PDFRenderer to generate PDF documents that contain forms, that can be filled out and submitted just like normal HTML forms.
At the moment the module for fop consists of a jar archive with the classes and a new batch file to start the processing (I'm not using the fop class as a starter, because I need to create a different renderer). The system works so far and is able to generate all of the form elements named above. Submit and reset buttons work as they're supposed to. I didn't test every layout situation for the form elements, so it might produce unexpected layout in some cases. As I said it's a proof of concept implementation and not a final product.
The reason why I'm announcing this is that I will finish the project in a couple of days and I don't think I will develop the form extension any further. Maybe someone will find the sources usefull as a starting point or is even willing to develop it further. The sources and the precompiled jar archive can be found at my homepage [1]. I've also got an example fo document with my extension there, together with the resulting PDF file. So anyone who's interested can take a quick look at it. The paper I'm writing on this project will be released in couple of days (in German though, Studienarbeit) together with a little documentation on the form extension in English.
I just wanted to let you know. If you have any questions, just ask me. Any feedback is welcome.
Cheers, Florian Hecht
P.S.: should I also post this on fop-user?
[1] http://wwwstud.ira.uka.de/~s_hecht/