Я использую 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)
Создает:
![enter image description here](https://i.stack.imgur.com/c3eSM.png)