iText 5

How to change the font color and size when using FontSelector?

I am using font selector to process the String and this works fine unless there are 2 strings


I am using iText (Java) to write PDF which may contain Chinese characters. So I am using font selector to process the String and this works fine.

Now the problem is that if there are 2 strings

String str1 = "Hello Test1"; String str2 = "Hello Test2";

I need to write str1 witch Font Color = Blue and size = 10, whereas str2 with Font Color = Gray and size = 25.

I am not able to figure out how to achieve this using FontSelector.

Posted on StackOverflow on Dec 13, 2012 by user1900499

Here you have a code snippet that adds the Times Roman text in Blue and the Chinese text in Red:

FontSelector selector = new FontSelector(); Font f1 = FontFactory.getFont(FontFactory.TIMES_ROMAN, 12); f1.setColor(BaseColor.BLUE); Font f2 = FontFactory.getFont("MSung-Light", "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED); f2.setColor(BaseColor.RED); selector.addFont(f1); selector.addFont(f2); Phrase ph = selector.process(TEXT);

In your case you need two FontSelectors.

FontSelector selector1 = new FontSelector(); Font f1 = FontFactory.getFont(FontFactory.TIMES_ROMAN, 12); f1.setColor(BaseColor.BLUE); selector1.addFont(f1); Phrase ph = selector.process(str1); FontSelector selector2 = new FontSelector(); Font f2 = FontFactory.getFont(FontFactory.TIMES_ROMAN, 12); f2.setColor(BaseColor.GRAY); selector2.addFont(f2); Phrase ph = selector.process(str2);