我正在使用SpreadsheetTable
打印跨越多页的表格。但是,一旦构建了故事,该表就会始终显示在页面的中间。我想将其放置在画布上的自定义位置。如何实现呢? Table
和LongTable
类也没有定位参数。
添加我的代码:
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)
这将生成: