Plugin backend renderer for reportlab.graphics.renderPM
copied from cf-staging / rlpycairoThis is a plugin for the ReportLab PDF Toolkit. which constructs rich PDF documents, and also creation of charts in a variety of bitmap and vector formats.
This plugin is intended to replace most of the usage of the libart based C extension _renderPM which has been shown to have issues when rendering complex documents.
This backend can be brought into use by setting reportlab.rlconfig.renderPMBackend = 'rlPyCairo' any of the methods detailed in reportlab/rlconfig.py can be used to accomplish this.
The new backend seems able to handle all the same behaviour as _renderPM and the only place where it seems inferior is in the rendering of scaled images and the speed with which it draws text.
At present the rlPyCairo backend only uses the _renderPM extension to use its mapping of ReportLab font names to extract paths for rendering this is no doubt the reason for its slowness when rendering text.
Currently we are not making use of any of the more advanced abilities of PyCairo such as transparency, patterns etc, but that may change in the future.