2010-07-21 2 views
2

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

+0

есть ли решение? У меня тоже есть эта проблема, и это очень важно для меня. пожалуйста помоги! –

ответ

0

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) 

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

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

Я надеюсь, что это помогает

Meitham

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

+0

На данный момент я просто разбиваю текст на «новую строку», а затем работает со списком строк, каждая строка получает одну строку в таблице. Но я думаю, что пакет ReportLab RML должен обладать такой функциональностью, чтобы автоматически разделить текст. Если у меня есть свободное время, я постараюсь написать патч для этой ошибки. –

+0

с использованием пара в ячейке таблицы не поможет в расщеплении данных ячейки. –

Смежные вопросы