How to keep specific words together on one line?

Tags: non-breaking spaceParagraphsplit textiText 7

I have a sample paragraph and I am adding chunk values to it like this:

p.add(firstname);
p.add(lastname);
p.add(phone);
p.add(login);
I want to make sure that firstname and lastname aren't split by a newline. When a phone number contains space characters, I don't want any newline to occur within the phone number.

Posted on StackOverflow on Oct 1, 2015 by Valeriane

Replace all the spaces where you don't want a line break with \u00A0. This way, you don't have to check positions etc. (That would only be possible if you calculate the width of every String snippet.)

For instance, if you do this:

Paragraph p = new Paragraph();    
p.add("Valeriane\u00A0Valerius 012\u00A0345\u00A067\u00A089 valerianelogin");
doc.add(p);

The String can only be split on two places (unless you use so many non-breaking spaces that you take so much space that the part you don't want to break doesn't even fit a line).

P.S. Note that there are no Chunks in iText 7. We use Text instances as atomic parts of paragraphs instead.

Click this link if you want to see how to answer this question in iText 5.