Sunday, February 17, 2008

Bye-bye ReportLab

Recently I am having fun playing with my new toy: porting my Python project "OpenRML" to Java. Python's OpenRML is using ReportLab library as a PDF generator. Among it is relatively slow, also there are number of features I really missing. Also it is quite expensive by time to add third-party stuff. So I've decided to say "bye-bye" to ReportLab.
First thought was to re-implement stuff in Jython or Groovy, because these are dynamic languages. But then I've decided to go with plain Java to avoid troubles in a future.
In this project, will no more ReportLab's RML markup for documents for a number of reasons. In short: I want markup to be small, cute, flexible and extendable, unlike RML. I had implemented a reporting middle-ware in Aozora Bank and now I see why RML is quite clunky idea.
Now, the project is in very early stage, no any RPC server yet and data integration. But it already can produce something: rich text paragraphs, coloring, fancy tables, clickable table of contents, insert images from URL or file etc. 
Today I had implemented Japanese QRCode barcode. It is amazing data encoding, which is damage-resistant and can contain lots of data on quite small print-out size. We have plenty of them everywhere and we need them on a paper too. I also working on mobile application, which scans the code from a camera or any image and decodes it back to text.

Screenshot below shows what my current newly ported from Python library produces:

Tomorrow I am going to implement SVG support. :-)