【问题标题】:How to have multiple text colors within the same paragraph in ReportLab?ReportLab 如何在同一段落中使用多种文本颜色?
【发布时间】:2016-06-03 14:50:09
【问题描述】:

我想创建一个段落如下:

step = str(StepNumber) #StepNumber is an int

if flag == True:
    color = "green" 
    sv = "[S]"

else:
    color = "red" 
    sv = "[V]"


P = Paragraph('<font color = "black>step</font>' + '<font color = color>sv</font>', style)

这不起作用,并将 XML 字符串放入报告中,而不是将其应用于 step 和 sv 参数。目标是在同一段落中使用黑色字体的步骤编号和绿色或红色字体的 sv 参数(取决于上面的 if 语句)。我试图将它们放在两个单独的段落中,但这似乎在两个段落之间添加了不需要的新行(或间距,不确定)。

当一个段落需要一个已经指定了自己的字体属性(例如字体颜色)的样式参数时,如何在段落中使用 XML?

【问题讨论】:

  • 就第二个问题而言,似乎段落文本中设置的 XML 属性将覆盖段落样式属性。

标签: python xml reportlab


【解决方案1】:

它被打印为 XML 的原因是您提供的正是它。所以我们必须正确格式化字符串如下:

step = str(StepNumber)  # StepNumber is an int

if flag:
    color = "green"
    sv = "[S]"
else:
    color = "red"
    sv = "[V]"

P = Paragraph('<font color="black">{step}</font> <font color="{color}">{sv}</font>'.format(color=color, sv=sv, step=step)
    , style)

现在字符串完全取决于您的变量,并且 XML 有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多