1.3 ReportLab's commercial software
The ReportLab library forms the foundation of our commercial solution for PDF generation, Report Markup
Language (RML). This is available for evaluation on our web site with full documentation. We believe that
RML is the fastest and easiest way to develop rich PDF workflows. You work in a markup language at a
similar level to HTML, using your favorite templating system to populate an RML document; then call our
rml2pdf API function to generate a PDF. It's what ReportLab staff use to build all of the solutions you can
see on reportlab.com. Key differences:
Fully documented with two manuals, a formal specification (the DTD) and extensive
self-documenting tests. (By contrast, we try to make sure the open source documentation isn't
wrong, but we don't always keep up with the code)
Work in high-level markup rather than constructing graphs of Python objects
Requires no Python expertise - your colleagues may thank you after you've left!'
Support for vector graphics and inclusion of other PDF documents
Many more useful features expressed with a single tag, which would need a lot of coding in the
open source package
Commercial support is included
We ask open source developers to consider trying out RML where it is appropriate. You can register on our
site and try out a copy before buying. The costs are reasonable and linked to the volume of the project, and
the revenue helps us spend more time developing this software.
1.4 What is Python?
Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl,
Perl, Scheme or Java.
Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high
level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as
well as to various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written
in C or C++. Python is also usable as an extension language for applications that need a programmable
Python is as old as Java and has been growing steadily in popularity for years; since our library first came out
it has entered the mainstream. Many ReportLab library users are already Python devotees, but if you are not,
we feel that the language is an excellent choice for document-generation apps because of its expressiveness
and ability to get data from anywhere.
Python is copyrighted but freely usable and distributable, even for commercial use.
Many people have contributed to ReportLab. We would like to thank in particular (in alphabetical order):
Albertas Agejevas, Alex Buck, Andre Reitz, Andrew Cutler, Andrew Mercer, Ben Echols, Benjamin Dumke,
Benn B, Chad Miller, Chris Buergi, Chris Lee, Christian Jacobs, Dinu Gherman, Edward Greve, Eric
Johnson, Felix Labrecque, Fubu @ bitbucket, Gary Poster, Germán M. Bravo, Guillaume Francois, Hans
Brand, Henning Vonbargen, Hosam Aly, Ian Stevens, James Martin-Collar, Jeff Bauer, Jerome Alet, Jerry
Casiano, Jorge Godoy, Keven D Smith, Kyle MacFarlane, Magnus Lie Hetland, Marcel Tromp, Marius
Gedminas, Mark de Wit, Matthew Duggan, Matthias Kirst, Matthias Klose, Max M, Michael Egorov,
Michael Spector, Mike Folwell, Mirko Dziadzka, Moshe Wagner, Nate Silva, Paul McNett, Peter Johnson,
PJACock, Publio da Costa Melo, Randolph Bentson, Robert Alsina, Robert Hölzl, Robert Kern, Ron Peleg,
Ruby Yocum, Simon King, Stephan Richter, Steve Halasz, Stoneleaf @ bitbucket, T Blatter, Tim Roberts,
Tomasz Swiderski, Ty Sarna, Volker Haas, Yoann Roman, and many more.
Special thanks go to Just van Rossum for his valuable assistance with font technicalities.
Moshe Wagner and Hosam Aly deserve a huge thanks for contributing to the RTL patch, which is not yet on
Chapter 1 Introduction