xmlgraphics-fop-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Fred Janon" <fja...@gmail.com>
Subject Re: Would an extension to print Gantt charts work?
Date Thu, 01 Nov 2007 23:24:32 GMT
Thanks Jeremias, thanks Warren! It helps a lot.

Your two following points made it clearer for me:

"the answer here is to write your
Gantt generator to create XSL-FO, which you may then translate into
something else with FOP"

"the XSL-FO spec allows foreign XML formats
and images to be combined with XSL-FO documents"

I had looked at the Barcode extension code but could not figure out how it
was involved in the process. A couple of sequence diagrams would have
helped! I will have another look at the Plan extension, it is probably a
good starting point for understanding extensions more. Thanks also for the
Java2D/AWT explanation, somehow I was thinking that it would generate some
AWT components but I guess just generates the content of an AWT component.

I have a database with task objects with their name, start/end dates,
completion, etc. I want to compose (to print it via pdf, PCL) a large
document (10+ pages) containing a Gantt chart composed of a table with rows
of text and numbers, bars (graphics), columns with dates, a legend and some
notes, in a very similar way as Microsoft Project. FOP would help me
formatting the document (margin, centering...) and with the pagination after
I compose an XML document that describes the content of the document but not
the pagination? FOP could generate the pdf document for example with 10
pages and the page number with my content segmented on each page? Would I
have to create an extension to draw the graphics for the task bars?

Sorry about all these basic questions, but I have the feeling that FOP can
save us a lot of time in our project but it's always difficult to figure out
the use and limits of a technology without spending quite some time on it
and I don't have much of that.

Thanks for your help again.


On 11/1/07, Jeremias Maerki <dev@jeremias-maerki.ch> wrote:
> Apache FOP is primarily an implementation of the XSL-FO standard, so it
> converts XSL-FO to some output format (PDF, PS, PCL etc.). These are the
> basics.
> Now, through the standard formatting objects fo:external-graphic and
> fo:instream-foreign-object, the XSL-FO spec allows foreign XML formats
> and images to be combined with XSL-FO documents. For example, FOP has a
> plug-in which lets you use SVG inside XSL-FO. The SVG is interpreted by
> Apache Batik and converted to a suitable target format for a renderer
> (an output format implementation).
> An example of an external extension for Apache FOP is Barcode4J, a
> barcode generator. Barcode4J can itself create various output formats:
> SVG, Java2D/AWT, EPS and bitmaps. The FOP plug-in selects the optimal
> output format depending on the renderer in use. For PostScript output,
> the plug-in renders the barcodes to Encapsulated PostScript (EPS). For
> PDF output, it paints the barcode to a Graphics2D instance which happens
> to have a PDF backend.
> On Java2D/AWT generation:
> FOP contains a Java2DRenderer which paints the internal representation
> of the processed XSL-FO document (the area tree) using a Graphics2D
> instance. Graphics2D is the main interface of the Java2D infrastructure.
> With this Java2DRenderer, we can do all sorts of things: We can subclass
> it and create bitmaps (PNGRenderer, TIFFRenderer). In that case the
> Graphics2D has a BufferedImage in the back. Finally, the BufferedImage
> is encoded as a PNG or TIFF file. Another subclass of Java2DRenderer is
> the AWTRenderer which ultimately has a AWT/Swing panel in the back. So
> this is used to display a FO document in a GUI application. We can also
> print to a printer this way.
> If you now want to create an extension for Gantt charts, the recommended
> approach is as follows:
> - Get or write a library which can produce Gantt charts from XML. You
> need to have the Gantt data as XML in order to embed it in the XSL-FO
> document.
> - Make sure you can produce either SVG or a bitmap from the Gantt data
> using that library. More universal would be to have the library paint
> the Gantt chart using Java2D (Graphics2D).
> - Put the whole thing in a FOP extension.
> There's no formal documentation about writing such extensions, yet. But
> there are a few examples where you can start from:
> - The simplest example is the Plan extension which you can find in FOP's
> examples/plan directory. The Plan extension creates an SVG document from
> some custom XML and passes it to FOP.
> - The old MathML extension in FOP's examples/mathml directory.
> - More serious examples can be found in Barcode4J (barcodes) and JEuclid
> (MathML). Barcode4J is probably to most comprehensive and most flexible
> example, but it therefore has its complexity.
> HTH,
> Jeremias Maerki
> On 01.11.2007 14:50:51 Fred Janon wrote:
> > I just started looking at FOP, therefore I don't really understand what
> it
> > can or cannot do. My attention was caught by the different formats that
> can
> > be generated. I would like to know if FOP with a custom extension could
> > generate Gantt charts? I am interested in pdf, PCL and Java/AWT
> generation.
> > Is there any documentation about the Java/AWT generation? I don't
> understand
> > what FOP would generate for AWT.
> >
> > Thanks
> >
> > Fred
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: fop-users-unsubscribe@xmlgraphics.apache.org
> For additional commands, e-mail: fop-users-help@xmlgraphics.apache.org

View raw message