This is the design for the external interface when FOP is to be embedded inside another java application.
Common places where FOP is embedded is in a report production application
of a server side application such as
The user agent is responsible for supplying user or context
specific information. The list of user agent values can be found on the
for the PS renderer (eventually):
Output from FOP: - Generation statistics: Number of pages total, Number of pages of each page-sequence, page-master used for each page (could be used to control the paper bin to get paper from, important for me in conjunction with PS Renderer).
The Driver handles the XML input. The user agent information is through the FOUserAgent. We could handle logging through the user agent. Options could also be handled through the user agent, using mime type selection for renderer options.
render to more than one renderer at once (maybe not from the command line). Two independent sources have asked me in the last few weeks if this works. I must say that this would be nice, since I could generate a PDF for the archive and the PS for the printer in one run. It would probably be faster than converting the PDF to PostScript afterwards.
I want to note that several code pieces for resolving URLs and/or file locations are scattered all over FOP and Batik. Replacing them all with an URIResolver invocation would unify behaviour and remove redundancies. I'd also recommend to lift the default URIResolver implementation from Saxon, it seems to tolerate the usual abuse better than everything else i came across elsewere.