[reportlab-users] Transparent PNG support

Robin Becker robin at reportlab.com
Tue Dec 11 05:14:51 EST 2007


Darryl Woods wrote:

> Hi all,

>

> I am creating a report with ReportLab, and as part of this I have

> extended the Table class to do some custom drawing for table borders and

> such. Part of the design, however, is that the right side of the tables

> "fade out" to white, using a gradient. (The report was designed by a

> graphic designer...)

>

> I've tried various things:

>

> - placing a dithered black/white GIF image and setting the transparency

> mask (looks very bad)

> - placing a PNG with transparency (transparency doesn't appear)

> - drawing a series of vertical lines, getting increasingly lighter (no

> transparency though)

>

> Is there any way I can accomplish this?

>

> Thanks,

> Darryl

interestingly the same kind of problem came up in a different context and I have
just finished getting png transparency into a working state.

The code is a bit hacky at present because not everything can be done cleanly in
one place. You'll need the latest svn version for this though.

Anyhow, for images created with canvas.drawImage, rgba transparency seems to be
working. There are two examples in test_pdfgen_general.py showing that rgba
images can do the 'right' thing. Presumably with a table background you need to
override the draw method to place the image behind the table and then do the
table draw or something like that anyhow. You won't be able to get more than 255
levels of transparency (I think), but perhaps that's enough.

Of course there are other more effective ways to do this within PDF, but the
other context hasn't asked for those yet ;)
--
Robin Becker


More information about the reportlab-users mailing list