I am working on a Python script that produces a PDF report using ReportLab. I need to produce the pages in landscape orientation and I have already looked through the ReportLab manual but I can't find a way of doing this. Any ideas or suggestions?
Make sure you've imported
from reportlab.lib.pagesizes import letter, landscape
And then:
canvas.setPageSize(landscape(letter))
Or more generally,
canvas.setPageSize(width, height)
and you can set it to be any size you like. Remember reportlab uses points, where 1 point is 1/72 of an inch. You can also import:
from reportlab.lib.units import inch
Which lets you do things like:
canvas.setPageSize(11*inch, 8.5*inch)
EDIT: Added all the built in page sizes inspired by yentsun.
Diving into the reportlab.lib.pagesizes
source code, we find in all:
A0,A1,A2,A3,A4,A5,A6
B0,B1,B2,B3,B4,B5,B6
LETTER, LEGAL, ELEVENSEVENTEEN
The comments claims that the lowercase letter
has been deprecated since 2001, but is still available. Additionally, two functions are avaialable, portrait
and landscape
that each take in a tuple pagesize, and portrait returns the tuple with the smaller dimension first, and landscape returns the tuple with the larger dimension first.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With