Cookie notice
Ok This website uses cookies to manage logged in users and to gather statistics on how people use the site.
We also use them to implement this annoying cookie notice, otherwise you'd have to read it on every page. ;)

What's new in ReportLab 3.4

released on 7th March 2017

Changes to commercial package (rlextra/ReportLab PLUS)

1) We now support SVG as a format for embedded vector graphics. Refer to samples &

In order to do this, a number of subtle changes and options to the rendering model were needed:

The <path> tag may now contain a <closePath/> tag to indicate that this is a closed path. The last point will be joined to the start.

The <path> tag has extra attributes
attribute fillRule (none | even-odd | non-zero)

none means use whatever is current default; even-odd means even odd crossing
determines the filling of the path, non-zero means that the crossing number
should be non-zero.

Attribute autoClose (none | pdf | svg) for filled  non closed subpaths use
different methods of filling the subpath. The svg mechanism measn effectively
stroking and drawing separately.

For examples see the end of test_050_paths.rml at

The image type attribute may now be "svg" to allow svg drawings to be used.


2)  The <barCodeFlowable> and <barCode> tags now support these encodings
                EAN5 (new)
                ECC200DataMatrix (new)
                UPCA (new)

3) We have considerably expanded our support for fillable forms within PDF files. The <textField> tag has many more attributes<checkboxField>, <radioField>, <choiceField> & <listboxField> which
along with the new <textField> make possible PDF forms. See example in test_028_fields.rml at

4) The <ul> & <ol> tags now support automatic style change for the start/type parameter, by using a space separated list fo start values. See for

<ul> example

<ol> example


  • added support for rotating bullets in ul/ol; version-->3.3.33
  • add relative value <sup>/<sub> examples; version-->3.3.1

Changes to Open Source package (reportlab)

Also contains some commercial package (rlextra/ReportLab PLUS) fixes.

* More pagesizes from (contributed by
* add in fillMode (fill-rule) variable to the graphics state for drawings
* add support for automatic bullet rotation in ListFlowables.
* fix acroform annotation bug in radios (reported by Olivia Zhang)
* fix split paragraph rendering bug (reported by Olivia Zhang & Echo Bell)
* Allow Image to have a drawing as argument
* support for Path autoclose & fillMode; version --> 3.3.29
* add support for different fill policies in renderXX drawPath; version-->3.3.28
* allow for UTF_16_LE BOM, fix for bug contributed by Michael Poindexter
* improved support for images in renderPM/renderSVG bug report from Claude Paroz
* add AcroForm support to canvas; version --> 3.3.22
* avoid cr lf line endings
* attempt to ensure zipImported has some files or returns None
* added additonal test to barcode/
* add an invisible font test thanks Konstantin Baierer
* add mailto href test
* improve UPCA barcode contribution by Kyle McFarlane
* attempt to fix __loader__ issues in pyinstaller suggested by dbrnz @ bitbucket
* fix NormalDate comprisons in python3.x
* fix ypad use in ParagraphAndImage contrib annamarianfr@bitbucket, version-->3.3.16
* try to prevent multiple saving contrib by Tim Meneely
* fix problems with svg drawToString contrib by Eric Gillet & Johann Du Toit
* fix issue reported by Yitzchak Scott-Thoennes <>
* fix fake KeepTogether setup in handle_keepWithNext
* add NullActionFlowable, fix empty KeepTogether
* really merge para-measure-fix
* merge para-measure-fix changes
* fixes to TypedPropertyCollection
* changes to Render class; allow drawings to specify initialFontName/Size
* fix python>=3.2 default axis labelling to match python2.x; bugfix contributed by Robin Westin bitbucket issue #82
* fix AttributeError reported by Kay Schluehr bitbucket issue #81
* add experimental time value axis
* fix bug in python shapes rendering
* add negative span style to test_platypus_tables splitting example
* fix segfault in _rl_accel.c; fix contributed by Neil Schemenauer as issue #78
* attempt to remove quadratic performance hit when longTableOptimize is set
* allow DATA: scheme in open for read
* import Table _rowpositions calculation
* support small ttfs which do not allow subsets
* add rl_settings allowTTFSubsetting
* address issue #76 (deprecated immports) reported by Richard Eames
* add table cell support for simple background shadings, contributed by Jeffrey Creem jcreem@bitbucket
* fix bug in reported by Vytis Banaitis @ bitbucket; version-->3.3.2
* minor change to allow barWidth setting in (suggested by Kyle MacFarlane @ bitbucket)
* make paraparser syntax errors real and fix <sup/sub> tags to have relative values; version-->3.3.1