Что определяет вертикальное пространство в таблицах Reportlab?

Я определяю этот стиль в документе:

styles.add(ParagraphStyle(name='Table Header', font ='Helvetica-Bold',fontSize=16, alignment=TA_CENTER)) 

Я использую это, чтобы определить абзацы для текста, чтобы войти в верхнюю строку каждой таблицы (чтобы они обертывались правильно):

 L2sub = [(Paragraph(L[0][0], styles['Table Header']))] 

Позже, когда я добавляю таблицу, есть также место для определения стилей:

 report.append(Table(data,style=[ ('GRID',(0,0),(len(topiclist)-1,-1),0.5,colors.grey), ('FONT', (0,0),(len(topiclist)-1,0),'Helvetica-Bold',16), ('FONT', (0,1),(len(topiclist)-1,1),'Helvetica-Bold',12), ('ALIGN',(0,0),(-1,-1),'CENTER'), ('VALIGN',(0,0),(-1,-1),'MIDDLE'), ('SPAN',(0,0),(len(topiclist)-1,0)), ])) 

Мой вопрос: где параметр, определяющий вертикальную высоту ячеек в первой строке? У меня возникают некоторые проблемы с слишком большим текстом для ячейки и / или установкой слишком низкой в ​​ячейке, но я не могу определить, что вызывает ее или что делать, чтобы исправить ее. Я изменил оба размера, но я не могу заставить ячейки быть чем-то другим, кроме одинаковой высоты. Когда я просто помещал текст в ячейки вместо абзацев, таблица def'n работала хорошо, но абзацы вызвали проблему.

One Solution collect form web for “Что определяет вертикальное пространство в таблицах Reportlab?”

Я не верю, что в TableStyle есть настройка, которая позволяет вам изменять строку. Это измерение дается, когда вы создаете новый объект Table :

 Table(data, colwidths, rowheights) 

Где colwidths и rowheights являются списками значений измерения, например:

 from reportlab.lib.units import inch from reportlab.lib.styles import getSampleStyleSheet from reportlab.platypus import Paragraph from reportlab.platypus import Table from reportlab.lib import colors # Creates a table with 2 columns, variable width colwidths = [2.5*inch, .8*inch] # Two rows with variable height rowheights = [.4*inch, .2*inch] table_style = [ ('GRID', (0, 1), (-1, -1), 1, colors.black), ('VALIGN', (0, 0), (-1, -1), 'MIDDLE'), ('ALIGN', (1, 1), (1, -1), 'RIGHT') ] style = getSampleStyleSheet() title_paragraph = Paragraph( "<font size=13><b>My Title Here</b></font>", style["Normal"] ) # Just filling in the first row data = [[title_paragraph, 'Random text string']] # Now we can create the table with our data, and column/row measurements table = Table(data, colwidths, rowheights) # Another way of setting table style, using the setStyle method. table.setStyle(tbl_style) report.append(table) 

colwidths и rowheights можно изменить на любое измерение, необходимое для соответствия содержимому. colwidths читается слева направо, а rowheights сверху вниз.

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

 rowheights = [.2*inch] * len(data) 

Это дает вам список, например [.2*inch, .2*inch, ...] для каждой строки в вашей переменной data .

  • Django reportlab latin2 кодирование
  • Не пронумерованные страницы в ReportLab
  • Преобразование простого текста в PDF в Python
  • reportlab низкая производительность
  • Создание контуров / TOC для существующего PDF в Python
  • Reportlab - Изображение не отображает
  • Лаборатория отчетов не может обрабатывать иврит (unicode)
  • python reportlab - registerFont - django - шрифт недоступен через некоторое время
  • Python - лучший язык программирования в мире.