Как вставить возврат каретки в абзац ReportLab?
Есть ли способ вставить возврат каретки в абзац в ReportLab? Я пытаюсь связать "n " с моей строкой абзаца, но это не работает.
Title = Paragraph("Title" + "n" + "Page", myStyle)
Я хочу сделать это, так как я помещаю имена в ячейки и хочу контролировать, сколько имен лежит на строке в ячейке (в идеале 1). Одна ячейка может содержать несколько имен, но в этой ячейке я хотел бы, чтобы каждое имя было на своей собственной строке, поэтому необходимо вставить новую строку.
В какой-то момент я получаю текучее к большой для ошибки фрейма (я думаю, что это как-то связано с тем, что таблица слишком большая или имеет слишком много Объединенных строк). Единственный способ, который я могу придумать, чтобы подавить это, - это иметь только одно имя на строку в ячейке, чтобы я мог ограничить размер таблицы на основе количества имен и сегментировать таблицы на меньшие таблицы.
Похоже, что должен быть гораздо более чистый способ сделать это. Есть предложения?
2 ответов:
A
Paragraph- этоFlowableв reportlab. Символ новой строки не будет работать в потоке так, как вы этого хотите. Если вашParagraphнаходится в таблице (как вы предлагаете), вы можете рассмотреть возможность создания ячейки без flowable. Например, вы можете сделать следующее:data = [['Title\nPage', 'Name', 'Exists'], # note the newline character ['', 'George', 'True']] t = Table(data, style=style_) ...Приведенный выше пример сделает первую ячейку данных высотой в два ряда (но частью одной и той же ячейки).
Если вам действительно нужно сохранить стиль
Paragraphflowable, однако, вы можете вставить два абзаца в один и тот же текст. ячейка: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