溢出隐藏在Reportlab的段落中

时间:2016-09-21 23:03:36

标签: python python-3.x reportlab platypus

我有Table个2个单元格,每个单元格内都有一个Paragraph

from reportlab.platypus import Paragraph, Table, TableStyle
from reportlab.lib.styles import ParagraphStyle
from reportlab.lib.units import cm

table_style_footer = TableStyle(
            [
                ('LEFTPADDING', (0, 0), (-1, -1), 0),
                ('RIGHTPADDING', (0, 0), (-1, -1), 0),
                ('TOPPADDING', (0, 0), (-1, -1), 0),
                ('BOTTOMPADDING', (0, 0), (-1, -1), 0),
                ('BOX', (0, 0), (-1, -1), 1, (0, 0, 0)),
                ('VALIGN', (0, 0), (-1, -1), 'TOP'),
            ]
        )

style_p_footer = ParagraphStyle('Normal')
style_p_footer.fontName = 'Arial'
style_p_footer.fontSize = 8
style_p_footer.leading = 10

Table([
       [
        Paragraph('Send To:', style_p_footer), 
        Paragraph('Here should be a variable with long content', style_p_footer)
       ]
      ],
      [1.7 * cm, 4.8 * cm],
      style=table_style_footer
     )

我需要隐藏段落的溢出内容,但是段落而不是隐藏溢出内容会有一个断行。

1 个答案:

答案 0 :(得分:3)

Reportlab似乎没有隐藏溢出的本机支持,但我们可以通过使用breakLines的{​​{1}}函数来实现它。 Paragraph函数返回一个对象,该对象包含给定一定宽度的段落的所有行,因此我们也可以使用它来查找第一行并丢弃其他所有行。

基本上我们需要做以下事情:

  1. 创建虚拟段落
  2. 获取虚拟
  3. 的行
  4. 根据虚拟
  5. 的第一行创建实际段落

    在代码中执行此操作如下所示:

    breakLines