Как вставить возврат каретки в абзац ReportLab?



Есть ли способ вставить возврат каретки в абзац в ReportLab? Я пытаюсь связать "n " с моей строкой абзаца, но это не работает.



Title = Paragraph("Title" + "n" + "Page", myStyle)


Я хочу сделать это, так как я помещаю имена в ячейки и хочу контролировать, сколько имен лежит на строке в ячейке (в идеале 1). Одна ячейка может содержать несколько имен, но в этой ячейке я хотел бы, чтобы каждое имя было на своей собственной строке, поэтому необходимо вставить новую строку.

В какой-то момент я получаю текучее к большой для ошибки фрейма (я думаю, что это как-то связано с тем, что таблица слишком большая или имеет слишком много Объединенных строк). Единственный способ, который я могу придумать, чтобы подавить это, - это иметь только одно имя на строку в ячейке, чтобы я мог ограничить размер таблицы на основе количества имен и сегментировать таблицы на меньшие таблицы.



Похоже, что должен быть гораздо более чистый способ сделать это. Есть предложения?

640   2  

2 ответов:

A Paragraph - это Flowable в reportlab. Символ новой строки не будет работать в потоке так, как вы этого хотите. Если ваш Paragraph находится в таблице (как вы предлагаете), вы можете рассмотреть возможность создания ячейки без flowable. Например, вы можете сделать следующее:

data = [['Title\nPage', 'Name', 'Exists'],  # note the newline character
        ['', 'George', 'True']]
t = Table(data, style=style_)
...

Приведенный выше пример сделает первую ячейку данных высотой в два ряда (но частью одной и той же ячейки).

Если вам действительно нужно сохранить стиль Paragraph flowable, однако, вы можете вставить два абзаца в один и тот же текст. ячейка:

title1 = Paragraph("Title", myStyle)
title2 = Paragraph("Page", myStyle)
cell = [title1, title2]               # put this in a single cell of your table

Если вы хотите начать новый абзац (независимо от того, находитесь ли вы в таблице или нет), вы можете использовать тег <br/>. Это должно сработать и для вас:

Title = Paragraph("Title" + "<br/>" + "Page", myStyle)

(кредит: Reportlab-как ввести разрыв строки, если абзац слишком длинный для строки )

Comments

    Ничего не найдено.