了解Python ReportLab中的表坐标系

use*_*044 3 python reportlab python-2.7

我无法理解ReportLab表格样式的坐标系.

根据他们的文件:

每个命令的第一个元素是其标识符,第二个和第三个参数确定受到负值坐标影响的单元格框的单元格坐标,如Python索引中那样从限制值向后计数.

坐标为(列,行),它遵循电子表格'A1'模型,但不是更自然(对于数学家)'RC'排序.左上角的单元格是(0,0),右下角是(-1,-1)

如果右下角总是(-1,-1),这是否意味着中间行和列是小数?这似乎没有意义.给出以下示例,位置(1,1)处的绿色开始是如何坐标系从0到-1以及第二个坐标系(-2,-2)如何从原点位置偏移?

from reportlab.lib import colors
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle

doc = SimpleDocTemplate("simple_table.pdf", pagesize=letter)
# container for the 'Flowable' objects
elements = []

data= [['00', '01', '02', '03', '04'],
       ['10', '11', '12', '13', '14'],
       ['20', '21', '22', '23', '24'],
       ['30', '31', '32', '33', '34']]
t=Table(data)
t.setStyle(TableStyle([('BACKGROUND',(1,1),(-2,-2),colors.green),
                       ('TEXTCOLOR',(0,0),(1,-1),colors.red)]))
elements.append(t)
# write the document to disk
doc.build(elements)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

use*_*044 6

我终于明白了,所以发表我自己的答案.你必须认为负坐标系和正坐标系完全相互独立.正系统从左上角的[1] [1]开始,并在向下和向右时增加数字.负系统从[-1] [ - 1]开始随着向上和向左的减少(较大的负数).

在此示例中,('BACKGROUND',(1,1),(-2,-2),colors.green)两个坐标在使用不同的相对起始位置时定义了框的左上角和右下角.


小智 6

表格的 Reportlab 坐标(示例)

现在假设您的桌子大小为 (5,4),那么这将是您需要遵循的坐标!