Нарисуйте таблицу в пользовательском месте на холсте - PullRequest
0 голосов
/ 26 июня 2019

Я использую 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...