[reportlab-users] Arabic support
Robin Becker
robin at reportlab.com
Tue Sep 1 08:10:37 EDT 2015
There is some support for RTL in trunk reportlab. In reportlab/rl_settings there
is a variable called rtlSupport (defaults to 0). If set to 1 using one of the
standard override methods then reportlab attempts to import the fribidi
libraries eg in reportlab/pdfgen/textobject.py
from pyfribidi2 import log2vis, ON as DIR_ON, LTR as DIR_LTR, RTL as DIR_RTL
in the _formatText method we are doing this
def _formatText(self, text):
"Generates PDF text output operator(s)"
if log2vis and self.direction in ('LTR','RTL'):
# Use pyfribidi to write the text in the correct visual order.
text = log2vis(text, directionsMap.get(self.direction.upper(),DIR_ON),clean=True)
if the libraries are not installed or cause an error on import you should get a
warning. I have fixed a bug related to the above so some people are using it.
This low level approach to using fribidi is clearly wrong. We should be doing it
at the parsing level, but that is hard since fribidi doesn't seem to allow for
annotated characters ie carrying the colour font boldness etc etc through a call
to log2vis isn't possible.
--
Robin Becker
On 24/08/2015 21:18, Fran Boon wrote:
> On 24 August 2015 at 15:07, Fran Boon <francisboon at gmail.com> wrote:
>> Is there a branch of ReportLab with RTL support included that I can
>> test / contribute to?
>> Or should I add my own support to our ReportLab routines using Python-BiDi?
>
> I did the latter for now & it seems to work well enough for my needs :)
>
> https://github.com/flavour/eden/blob/master/modules/s3/s3codecs/pdf.py#L138
>
> Thanks,
> Fran.
.......
More information about the reportlab-users
mailing list