在画布上的自定义位置绘制SpreadsheetTable

时间:2019-06-26 10:42:33

标签: python-2.7 reportlab

我正在使用SpreadsheetTable打印跨越多页的表格。但是,一旦构建了故事,该表就会始终显示在页面的中间。我想将其放置在画布上的自定义位置。如何实现呢? TableLongTable类也没有定位参数。

添加我的代码:

import random

from reportlab.lib.pagesizes import A4, landscape
from reportlab.platypus import SimpleDocTemplate, Paragraph, Table, Flowable, PageBreak, LongTable
from reportlab.lib.units import mm
from reportlab.platypus.flowables import Spacer, Image
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib import colors
from spreadsheettable import SpreadsheetTable

doc = SimpleDocTemplate("customFlow.pdf", pagesize=A4, leftMargin=0, rightMargin=0,
                        topMargin=0, bottomMargin=0)

story = []
data = [['Number', 'Random Number']]
for i in range(0, 10000):
    data.append([i, str(random.random()) + '\n' + str(random.random())])

table_style = [
    ('GRID', (0,0), (-1,-1), 1, colors.black),
    ('ALIGN', (0,0), (-1,-1), 'CENTER'),
    ('VALIGN', (0,0), (-1,-1), 'MIDDLE'),
    ('LEFTPADDING', (0,0), (-1,-1), 3),
    ('RIGHTPADDING', (0,0), (-1,-1), 3),
    ('FONTSIZE', (0,0), (-1,-1), 10),
    ('FONTNAME', (0,0), (-1,0), 'Times-Bold'),
]

spreadsheet_table = SpreadsheetTable(data, repeatRows=1)
spreadsheet_table.setStyle(table_style)
s = spreadsheet_table.split(A4[0], A4[1])
for part in s:
    story.append(part)
    story.append(Spacer(0, 10 * mm))
doc.build(story)

这将生成:

enter image description here

0 个答案:

没有答案