[reportlab-users] Newbie question: why the great chasm?

Andy Robinson andy at reportlab.com
Sun Jan 7 19:18:25 EST 2007


Ka-Ping Yee wrote:

> I've only used ReportLab a little, but there's one big thing that

> puzzles me about it. (I'm sorry if this is a FAQ, though if it is,

> perhaps it should be added to the FAQ page. It does seem like the

> sort of thing a lot of people would ask.)

>

> Why the great chasm between pdfgen and graphics?


Hi Ping,

Great to hear from you again after all these years!

The answer is history, customer requirements and resources.

Prior to 2000 I had worked on a project called PIDDLE aiming to have a
common graphics API across PIL, TKinter, PDF and other things, and was
acutely aware that once you get down to the details, it's very, very
hard to get different rendering technologies to give the same output,
and that lowest common denominator APIs end up pretty low. It's a lot of
work to unify renderers some of which go top-down and some bottom-up,
and which close paths and clip things differently, and which might have
different font technologies.

Our first goal was to produce PDF documents, so PDFgen came first. Then
an early customer insisted that we do bitmap versions of some financial
charts we had in a PDF report, but we couldn't find bitmap renderers
with the same drawing operations at first, so we said that charts were
as far as we'd go in the bitmap world. (We also went for a composable
object model to facilitate chart construction). Essentially, we said
the graphics was just for rectangular, er, graphics within a document -
the kind of things you'd display as a .png of .gif in an HTML page,
rather than "the whole page".

Over time things like libart and freetype got better, and now it's quite
feasible to render the primitive operations in most formats; and if you
look under the hood of graphics you will find fairly comparable
"pseudo-canvases" for each graphics back end. It's totally clear with
hindsight that we needed a canvas interface and multiple implementations.

Unfortunately we now support a lot of quite mature and deeply-plumbed-in
solutions at many customer sites who keep us pretty busy and really
don't want any API upheavals - and also have the features for what they
need - and we just haven't had the freedom to shoot for a version 2
which would be a calendar year away and sadly make no difference to our
bottom line, given the demands of building customer solutions. So you
tend to get small, very backwards-compatible changes.

It's officially part of the ReportLab 3000 roadmap, and I still hope to
deliver it "ahead of schedule". Of course, a little help from a
programmer of your calibre (lots of graphics experience too, I see)
might accelerate things enormously ;-)


Best Regards,


Andy Robinson


More information about the reportlab-users mailing list