[reportlab-users] Hebrew Support Patch

Hosam Aly haly at centrivision.com
Tue Nov 17 13:19:59 EST 2009


I have been reading through Moshe's patch, and I noticed a few things.

First, the code that Moshe suggested for `Canvas.drawString` should
actually be placed at the very beginning of `PDFTextObject._formatText`,
because that's where all string writing methods eventually go (as far as
I understand).

Second, paragraph direction should not be associated with paragraph
alignment. Any paragraph can be aligned left or right, and that does not
change its direction, being LTR or RTL. So we need to have a flag that
tells the paragraph direction, and this flag should be set by the
caller. This is the same as what is done in HTML: you can specify
`dir="RTL"` as an attribute on most tags, and it does not affect text
alignment. So I suggest adding a "direction" property to
`platypus.paragraph`, whose value by default is LTR.

Moreover, there is no need for the code in `platypus.paragraph`. It is
sufficient to use `pyfribidi.log2vis` in `PDFTextObject._formatText`
with automatic detection for most cases, but we should pass the
paragraph direction to the pyfribidi function so as to get correct
output for some corner cases (e.g. when symbols come at the end of the

I am working on supporting RTL functionality right now, and I will
follow up with a patch very soon.

Best regards,

Hosam Aly
Software Engineer
Centrivision (http://www.centrivision.com/)

More information about the reportlab-users mailing list