Генерация PDF длинных таблиц с reportlab - PullRequest
1 голос
/ 23 марта 2012

Я занимаюсь созданием PDF из огромного списка данных.

Не требуется никакого причудливого оформления или форматирования. Просто данные представляют собой огромный список (около 500 строк и 500 столбцов). Вот мой код В настоящее время не будет проблем с разделением строк на несколько страниц в зависимости от размера страницы, но столбцы обрезаются, поскольку 500 столбцов не помещаются на одной странице. Я также хотел бы разделить столбцы на разных страницах. Каждая запись в ячейке является целым числом. Как мне этого добиться?

from reportlab.lib import colors
from reportlab.lib.units import cm
from reportlab.lib.pagesizes import A0
from reportlab.platypus import SimpleDocTemplate, LongTable, TableStyle


elements = []
doc = SimpleDocTemplate(output, pagesize=A0)
t = LongTable(data)
t.setStyle(TableStyle([('INNERGRID', (0,0), (-1, -1), 0.25, colors.black), 
                       ('BOX', (0, 0), (-1, -1), 0.25, colors.black), 
                     ]))
elements.append(t)
doc.build(elements)

1 Ответ

3 голосов
/ 23 марта 2012

Я думаю, что лучшим вариантом для печати PDF может быть объявление объёма страниц, достаточно большого для обработки данных. Например, если каждый блок сетки имеет размер 1x1 дюйм и один дюйм с каждой стороны, попробуйте сделать что-то вроде:

doc = SimpleDocTemplate(output, pagesize=(502*inch, 502*inch) )
...