如何为itext中的单个字符串设置两种不同的颜色

Ram*_*hna 2 itext

我有如下所示的字符串,但无法拆分该字符串。

String result="Developed By : Mr.XXXXX";
Run Code Online (Sandbox Code Playgroud)

我可以在 itext 中创建一个段落并设置字体颜色,如下所示,

Font dataGreenFont = FontFactory.getFont("Garamond", 10,Color.GREEN);
preface.add(new Paragraph(result, dataGreenFont));
Run Code Online (Sandbox Code Playgroud)

它将整个文本设置为绿色result,但我只想为部分设置颜色Mr.XXXXX。我该怎么做呢?

Bru*_*gie 5

首先:您使用的是过时版本的 iText。请升级!

至于你的问题: aParagraph由一系列Chunk对象组成。AChunk是文本的原子部分,其中所有字形都采用相同的字体,具有相同的字体大小、颜色等......

因此你需要将你的分成String两部分:

Font dataGreenFont = FontFactory.getFont("Garamond", 10, BaseColor.GREEN);
Font dataBlackFont = FontFactory.getFont("Garamond", 10, BaseColor.BLACK);
Paragraph p = new Paragraph();
p.Add(new Chunk("Developed By : ", dataGreenFont));
p.Add(new Chunk("Mr.XXXXX", dataBlackFont));
document.add(p);
Run Code Online (Sandbox Code Playgroud)