[reportlab-users] FOP vs reportlab: to be or not to be?

Andy Robinson reportlab-users@reportlab.com
Sat, 24 Aug 2002 12:04:39 +0100


> Hello reportlab-users,
>
> Can anybody on this list compare features of open source reportlab
> tool and FOP to make a decision where each product is more suitable?
>
> Thanks in advance.

The true FOP competitor is our "Report Markup Language" produuct,
which we have just reduced to $3000 per server license.  It's
basically 'Platypus done in XML', which makes things much easier,
but it has some extra features and it definitely won't be
open source soon. However, the data sheet on our web site has a
comparison with FOP on the back and most of the advantages
are true of our Open Source Tools.

Our philosophy with the PDF library is "you write the code to generate
the PDF". You have a nice high level language available and can use
any re-use techniques you want.  You do, however, have to do
some programming.

FOP usually implies that you to program in XSLT.  For a very simple
sequential input mapping to sequential output it's OK, but
beyond that XSLT is very hard work.  This is especially the case when
you want something which is not simple and needs some custom
drawing or custom logic.  Look at www.renderx.com who proudly
announced something to do barcode layout in XSLT (which is
exactly as complex as doing 2d graphics in SQL).  We just
have barcode objects you can drop in.

The last time I tried FOP it was also MUCH slower, maybe 10x or more.
But I have not tested for 18 months.

ReportLab have a plug-in graphics component and (admittedly crude)
tools for multi-pass generation and building cross references.
For FOP you have to use SVG for graphics, and to generate it
yourself or find another chart library.

Also, I think Python is ideally suited to supporting tasks like
getting hold of data from different APIs.  You can write one
program to handle data acquisition, transformation, PDF generation
and whatever else is needed, rather than needing a pipeline of
apps.

If you want a Java solution with similar approach to ours,
look at iText (www.lowagie.com).

Best Regards,

Andy Robinson