Java 在PdfPCell/段落怪诞中设置字体颜色

Java 在PdfPCell/段落怪诞中设置字体颜色,java,colors,itext,paragraph,Java,Colors,Itext,Paragraph,我遇到了一个设置颜色的奇怪问题。以下代码起作用: Font nameFont=new Font(FontFamily.TIMES_ROMAN, 20.f, Font.BOLD,new BaseColor(mon.getColor().getRGB())); Paragraph name=new Paragraph(mon.getName(),nameFont); PdfPCell c=new PdfPCell(name); 但是,此代码不起作用,因为它使用上一个单元格的颜色: Font nam

我遇到了一个设置颜色的奇怪问题。以下代码起作用:

Font nameFont=new Font(FontFamily.TIMES_ROMAN, 20.f, Font.BOLD,new BaseColor(mon.getColor().getRGB()));
Paragraph name=new Paragraph(mon.getName(),nameFont);
PdfPCell c=new PdfPCell(name);
但是,此代码不起作用,因为它使用上一个单元格的颜色:

Font nameFont=new Font(FontFamily.TIMES_ROMAN, 20.f, Font.BOLD,new BaseColor(mon.getColor().getRGB()));
Paragraph name=new Paragraph(mon.getName());
name.setFont(nameFont);
PdfPCell c=new PdfPCell(name);

有人能解释为什么会这样吗?TIA.

设置段落的字体不会更改段落中所有文本的字体,它只会设置默认字体以用于进一步添加。因此,你的

Paragraph name=new Paragraph(mon.getName());
name.setFont(nameFont);
保留现有内容mon.getName的字体。如果你做了类似的事情

name.add("some additional text");
此后,您将看到附加的文本正在使用您的字体


段落继承了短语的这种行为。

这有点让人困惑,但现在我明白了它在做什么。谢谢