有没有办法直接使用Style类自动格式化文本;

时间:2017-02-23 02:03:15

标签: string text itext itext7

String test = "Hello -this is a string of text";

像这样:...... 每当在第7版TextParagraph中使用该文本字符串时,它将使"this" 斜体或某些设置为Style

使用特殊字符可以使用itext7使Text显示某个Style

我需要这样的东西,因为该程序的用户想要制作某些单词 italic

用户键入TextArea以定义String。 我保存了字符串,然后只需要TextParagraph来保存该字符串:

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

我虽然使用TextFlow,但是因为它使用JavafX CSS而无法使用itext7。

1 个答案:

答案 0 :(得分: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;

}