String 有没有一种方法可以在不直接使用Style类的情况下自动设置文本格式;
像这样的:。。。 每当在itext 7String 有没有一种方法可以在不直接使用Style类的情况下自动设置文本格式;,string,text,itext,itext7,String,Text,Itext,Itext7,像这样的:。。。 每当在itext 7文本或段落中使用该文本字符串时,它都会使“此”斜体或某些设置样式 使用itext7,几乎可以使用特殊字符使文本以某种样式出现: 我需要这样的东西,因为程序的用户会想把某些单词改成斜体 用户在TextArea中键入以定义字符串。 我保存了字符串,然后只需制作一个文本或段落来保存该字符串: String test = "Hello -this is a string of text"; 我曾考虑过使用TextFlow,但这不适用于itext7,因为它使用Jav
文本
或段落
中使用该文本字符串时,它都会使“此”
斜体或某些设置样式
使用itext7,几乎可以使用特殊字符使文本
以某种样式出现
:
我需要这样的东西,因为程序的用户会想把某些单词改成斜体
用户在TextArea
中键入以定义字符串
。
我保存了字符串,然后只需制作一个文本
或段落
来保存该字符串:
String test = "Hello -this is a string of text";
我曾考虑过使用
TextFlow
,但这不适用于itext7,因为它使用JavaFXCSS 我想出了这个,它很管用,但不是那么漂亮
Cell location = new Cell()
.add(new Paragraph(test);
将字符串拆分为多个部分,为每个部分创建一个
Text
对象,对于要更改样式的部分,将相应的样式设置为相应的Text
对象,然后将所有Text
对象添加到段落中。
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;
}