2017-02-23 24 views
0
String test = "Hello -this is a string of text"; 

Что-то вроде этого: ... Всякий раз, когда эта строка текста была использована в IText 7 Text или Paragraph было бы "this"наклонным или некоторые настройки Style.Есть ли способ автоматического форматирования текста без использования класса Style непосредственно;

Довольно много использовать специальные символы, чтобы Text появляются с определенной Style использованием itext7:

мне нужно что-то вроде этого, потому что, пользователи программы будут хотеть, чтобы сделать определенные слова наклонным.

Пользователи вводят в TextArea для определения String. У меня есть строки, сохраненные, а затем просто сделать Text или Paragraph держать эту строку:

  Cell location = new Cell() 
        .add(new Paragraph(test); 

Я хотя об использовании TextFlow, но это не будет работать с itext7, как он использует JavaFX CSS.

+3

Split вам строку на части, создать 'объект Text' для каждой части, для части, которые вы хотите изменить стиль для установки соответствующего стиля соответствующему объекту «Текст», а затем просто добавьте весь объект «Текст» в ваш абзац. –

ответ

0

Я придумал это, она работает, но это не то, что довольно ...

private Paragraph formatText(String string) { 

    Paragraph paragraph = new Paragraph(); 

     Stream.of(string) 
      .map(w -> w.split(" ")) 
      .flatMap(Arrays::stream) 
      .forEach(w -> { 
       Text word; 

       if (w.startsWith("~")) { 
        String replace = w.replace("~", ""); 
        word = new Text(replace); 
        word.setItalic(); 

       } else if (w.startsWith("*")) {     
        String replace = w.replace("*", ""); 
        word = new Text(replace); 
        word.setItalic();  

       } else {      
        word = new Text(w); 
       } 

       paragraph.add(word);      
      }); 

    return paragraph; 

}