Python Reportlab RML.Как разбить строку таблицы на две страницы - PullRequest
2 голосов
/ 21 июля 2010

Мне интересно, есть ли какая-нибудь функциональность для разделения строки таблицы на две и более страницы. Причина: некоторая информация в строке может быть слишком длинной для одной страницы, а если на одну строку больше размера страницы, это вызывает исключение.

1 Ответ

0 голосов
/ 26 июля 2010

ReportLab не переносит текст из коробки, поэтому я предполагаю, что вы либо используете пункт в ячейках таблицы, либо разбиваете строки вручную с помощью simpleSplit.

Если ваш текст состоит из одной строки, то вы можете использовать

from reportlab.pdfbase.pdfmetrics import stringWidth
textWidth = stringWidth(text, fontName, fontSize)

Если ваш текст состоял из нескольких строк, предполагая, что вы работаете в прямоугольной области с определенной шириной, выполните

from reportlab.lib.utils import simpleSplit
lines = simpleSplit(text, fontName, fontSize, maxWidth)

lines - это список всех строк вашего абзаца, если вы знаете значение межстрочного интервала, тогда высоту абзаца можно рассчитать как lineSpacing * len (lines)

Если это оказалось длиннее, чем ваша страница, то использование любого шаблона (preppy, django, ninja и т. Д.) Находит хороший предел для вашего текста, завершает текущую строку и начинает новую.

Надеюсь, это поможет

Meitham

p.s. Вы всегда можете отправить свои вопросы в список рассылки reportlab, и они обычно очень быстро отвечают на эти вопросы.

...