使用ReportLab以横向方式生成PDF

Osm*_*hop 5 python pdf reportlab

我正在使用一个Python脚本,使用ReportLab生成PDF报告.我需要以横向方式生成页面,并且我已经查看了ReportLab手册,但我找不到这样做的方法.任何想法或建议?

Kyl*_*ton 14

确保您已导入

from reportlab.lib.pagesizes import letter, landscape
Run Code Online (Sandbox Code Playgroud)

然后:

canvas.setPageSize(landscape(letter))
Run Code Online (Sandbox Code Playgroud)

或者更一般地说,

canvas.setPageSize(width, height)
Run Code Online (Sandbox Code Playgroud)

你可以把它设置成你喜欢的任何尺寸.记住reportlab使用点,其中1点是1/72英寸.您还可以导入:

from reportlab.lib.units import inch
Run Code Online (Sandbox Code Playgroud)

这可以让你做以下事情:

canvas.setPageSize(11*inch, 8.5*inch)
Run Code Online (Sandbox Code Playgroud)

编辑:添加了由yentsun启发的所有内置页面大小.

深入了解reportlab.lib.pagesizes源代码,我们发现:

A0,A1,A2,A3,A4,A5,A6
B0,B1,B2,B3,B4,B5,B6
LETTER, LEGAL, ELEVENSEVENTEEN
Run Code Online (Sandbox Code Playgroud)

评论声称小写字母letter自2001年以来已被弃用,但仍然可用.另外,两个函数是可用的,portrait并且landscape每个函数都采用元组页面大小,而肖像首先返回具有较小维度的元组,而landscape首先返回具有较大维度的元组.