如何在 ReportLab 的同一段落中使用多种文本颜色?

How to have multiple text colors within the same paragraph in ReportLab?

我想创建一个段落如下:

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 的原因是因为您提供的正是这个。所以我们必须正确格式化字符串,如下所示:

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 有效。