9

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

4

2 回答 2

19

确保您已导入

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 年以来已被弃用,但仍然可用。此外,还有两个函数可用,portrait每个函数都landscape接受一个元组页面大小,纵向首先返回具有较小维度的元组,而横向首先返回具有较大维度的元组。

于 2013-03-19T03:16:38.810 回答
0
from reportlab.lib.pagesizes import letter, landscape

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

p = canvas.Canvas(response, pagesize=(landscape(letter)))
于 2019-07-03T22:02:36.057 回答