This page is for users and evaluators of our commercial software. It should help you select
the right installer and get up and running as quickly as possible. For details on what's in the latest
release, you should start here instead.
Disclaimer
We regard our software as a framework for Enterprise use. In general it is
used and delivered as part of an overall solution or supplied with the necessary expert services
assistance. Different customers will need different parts of the framework, which have very different
'entry points' and canonical examples. In addition, we find ourselves dealing with C++, Java, Perl or Visual Basic programmers with different skills and experience. So, there is more than one way to do it, and more than one way to document it, and people
starting without a clear goal in mind or guidance may find things unclear. For this reason among others
the downloads themselves are password-protected. If you would like to evaluate our commercial tools, contact us on this address
Our framework is written in Python, with key portions rewritten in C (or Java) for speed. We do not aim to teach Python system administration (which is well-documented, similar to Java and fairly easy).
Supported versions
We support Python versions 2.3, 2.4 and 2.5. For new installations we recommend Python 2.5, and
we are introducing Python 2.5 features in parts of our framework for future releases. Slightly older versions of our library are available
which work well with 1.5.2 up to 2.2, but only on request.
The software will work on any POSIX-compliant operating system with a C compiler (i.e. Windows, Mac OS, Unix and Linux), and we test regularly on FreeBSD and Solaris. However the only OS for which we maintain an out-of-the-box installer is Windows.
We have also provided a Java version (built using Jython) which offers 100% identical output across our test suite running on a JVM. This uses Jython 2.1. However, this does not offer the same performance and is currently regarded as experimental. (We hope to do the same for .NET soon!)
Available installers
Windows Installer
This is the easiest way to get started if you are on Windows. You will need to install Python itself and (strongly recommended) the Python Windows extensions first. We currently recommend Python 2.5 but 2.4 and 2.3 are also supported. The steps are:
Install latest Python (e.g. Python 2.5.1.msi) for Windows from here (off site, currently v2.5.1).
Test Pythonwin by using Start | Programs | Python 2.5 | Pythonwin. If it starts up, fine; you can shut it down again.
If you see an error related to "MFC71.DLL" — if so, you need to download that Microsoft-provided file
from here. This library must be downloaded separately
for license-related reasons, but is used in many applications built with Microsoft tools and may be on your system already.
Install latest ReportLabJumboInstaller from the devnet directory. These have names like ReportLabJumboInstaller-2.1.1-py25.exe
(Optional) If you are using Diagra to support data-aware charts from versions before Jan 2006 you need to install the mx.ODBC database adaptor from
eGenix
; we no longer include this in our installer. Install their
base
and
commercial
packages, in that order, for your Python version by following links in this sentence.
This is commercial software (approx USD 95/ EUR 75 / GPB 60 per seat) and you will need to buy desktop licenses from eGenix if you
go beyond the initial trial. The most recent versions of our library use an open source ODBC connector and can support MySQL directly, removing this dependency..
This installer will deliver our libraries, the Python Imaging Library (PIL) and Python Mega Widgets (Pmw) (on which we depend), as well as all needed DLLs, n one step. Experienced Python developers will find this table useful, which shows what goes where.
Python Imaging Library v 1.1.6 (unmodified) in site-packages, with _imaging.pyd contained
Docs
All auto-generated by our tools on your machine. Each in its product directory (e.g. rlextra/rml2pdc/docs, rlextra/pageCatcher/docs, reportlab/docs/userguide/) but accessible from one set of links on the Start Menu
GUIs
The start menu entry for ReportLab includes a link to the RML demo GUI (rmlgui.exe in C:\python25), and to Diagra editor (rlextra/graphics/guiedit.pyc).
The demo GUI is of limited real-world value.
Once finished, you should have a ReportLab link on your Start Menu which points you at the documentation, like this:
Cross-platform sourcepackage
Users on Unix (including Mac OS X), or wanting control over the distribution,
will need to install the packages themselves. We do not provide standard installs
due to the huge variation of platforms, components already installed, and corporate
deployment requirements; we assume that people can access a Windows machine for initial
evaluation. The instructions which follow will require either some familiarity with
Python or a degree of persistence :-)
Whichever applies, our rl_check.py script will be a useful companion which you can run to
check off each step as you have done it. Place this in a temporary location.
If you don't already have Python installed, do that first from www.python.org! This section explains a 'normal'
installation and assumes you (a) have the python executable on your path, and (b) know where you
site-packages directory is.
Install Python if you don't have it already. If you don't, then install the latest
Mac version. Pre-built installers may be available for Mac OS X (2.2 is standard)
and most Linux distros.
Get our rl_check.py script.
Run it to check you don't already have old or partial versions of the reportlab tools
around and to see what we are aiming for.
Install The ReportLab Toolkit from source. This is available from http://www.reportlab.org/download.html
and from the devnet download area and will always be identical.
For release builds, the files will be named e.g. ReportLab_2_1.tgz. This will unzip
(or un-tar-gz) to contain a directory 'Reportlab_2_1', which contains a manifest and
the reportlab package directory. Either move the directory named 'reportlab' to a
location on your Python path, or place a .pth file on your Python path to point to it.
Note that the directory CONTAINING reportlab must be on the Python path, not the
reportlab directory itself. After doing this, rl_check.py should report that it can
find reportlab.
Compile the reportlab package by cd'ing to the directory and doing 'python
PYLIB/compileall.py REPORTLAB' where you should replace PYLIB with the path to your
Python standard library, and REPORTLAB with the path to your installed reportlab
package.
Download the ReportLab commercial libraries (named e.g. rlextra_1_21_py24.tgz).
Follow the same procedure described in the previous two steps to install the package.
Note that the 'rlextra' package differs from the 'reportlab' package in that some of the
code is only provided in bytecode-compiled form, as an intellectual property protection
measure. As a result, you need the rlextra distribution that matches your Python
version. Compilation (see previous step) is still required, since most files are
provided as source code. After installation, rl_check.py should report that it can find
rlextra.
The rlextra package also contains a 'bin' directory containing executables named
'rml2pdf', 'pagecatcher' and 'preppy'. You should copy these three scripts to a
permanent location on your system, grant them the executable permission, and ensure they
can be found by your system (by configuring the PATH environment variable to contain an
entry for the directory in which the scripts are located).
Download the standard Type 1 PDF
fonts and unzip them into the directory named 'fonts' that lives in the 'reportlab'
package directory that you installed. For licensing reasons we don't bundle these with
the software.
Download the _rl_accel module. This is a C extension which makes our libraries go a
lot faster. This should be considered part of the standard build, unless there's a
serious reason not to use it. Unpack the .tar.gz package. The .tar.gz package contains
a single directory. That directory contains a directory 'rl_accel', which contains a
script named setup.py. As root, execute 'python setup.py install' in the directory
containing setup.py. This should create an extension module _rl_accel.so and copy it to
your site-packages directory.
Download the _renderPM module. Follow the same installation instructions as for
_rl_accel (the only difference is that the directory containing the setup.py script is
named 'renderPM'). This is our graphics rendering engine used for making bitmap images
- not needed for pure PDF generation but considered part of the standard build.
Download the pyRXP module. Follow the same installation instructions as for
_rl_accel (the only difference is that the directory containing the setup.py script is
named 'pyRXP'). This is a very fast validating XML parser used by RML. (RML can fall
back onto slower code in its absence but behaviour for entities, whitespace and
non-ascii characters may vary; pyRXP is mandated for commercial installations).
Download and install the Python Imaging Library if you do not have it already (1.1.3
or higher, 1.1.6 recommended).
If you want to use the Diagra graphical drawing editor, install Python Mega Widgets
0.99 or higher.
To run the tests:
Change directory to the directory created by unpacking the reportlab open source toolkit
distribution.
cd reportlab/test
python runAll.py
cd ../graphics
python renderPM.py
Change directory to the directory created by unpacking the rlextra distribution.
cd rlextra/rml2pdf/test
python testall.py
Change directory to the directory created by unpacking the renderPM distribution.
cd renderPM
python test_renderPM.py
Change directory to the directory created by unpacking the pyRXP distribution.
cd pyRXP/test
python testRXPbasic.py
Daily Builds
Daily builds are also available in the Devnet area and work exactly as in the previous section. These are provided as a courtesy to registered customers and allow us to get new features out for testing rapidly to those customers requesting them.
Minimal runtime for server deployment or embedding
We also make available a minimal package (e.g. rlruntime_1_21_py24.zip, rlruntime-daily-py24.zip). This contains
just the elements needed for RML, PageCatcher, PDFEncrypt and so on to run, in bytecode-compiled form. This is intended for compact
deployment on servers. If you have installed the extension modules, and are using Python 2.3 or higher (which allows zipfile deployment), you can simply place this on your Python path; if prior to Python 2.3 you'll need to unzip it and place contents on the Python path.
Feedback
We hope to refine the installation process with better installers and 'getting started' documentation over time. Please let us know how we can improve this information.