使用ReportLab以横向方式生成PDF

时间:2013-03-19 02:52:54

标签: python pdf reportlab

我正在研究一个使用ReportLab生成PDF报告的Python脚本。我需要以横向方式生成页面,我已经查看了ReportLab手册,但我找不到这样做的方法。有什么想法或建议吗?

2 个答案:

答案 0 :(得分:14)

确保您已导入

from reportlab.lib.pagesizes import letter, landscape

然后:

canvas.setPageSize(landscape(letter))

或更一般地说,

canvas.setPageSize(width, height)

您可以将其设置为您喜欢的任何尺寸。记住reportlab使用点,其中1点是1/72英寸。您也可以导入:

from reportlab.lib.units import inch

让您可以执行以下操作:

canvas.setPageSize(11*inch, 8.5*inch)

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

深入了解reportlab.lib.pagesizes源代码,我们总能找到:

A0,A1,A2,A3,A4,A5,A6
B0,B1,B2,B3,B4,B5,B6
LETTER, LEGAL, ELEVENSEVENTEEN

评论声称小写letter自2001年以来已被弃用,但仍然可用。此外,两个函数是可更新的,portraitlandscape,每个函数都包含一个元组页面大小,而肖像首先返回具有较小维度的元组,而landscape将首先返回具有较大维度的元组。

答案 1 :(得分:0)

from reportlab.lib.pagesizes import letter, landscape

然后定义页面大小和方向。

p = canvas.Canvas(response, pagesize=(landscape(letter)))