如何解决使用itext7
我想创建一个pdf报告,其中在生成报告时仅需要突出显示某些文本。
我当前的代码
private static Text returnCorrectColor(String letter,String htext,PdfFont helveticaFont,PdfFont helveticaBoldFont) {
ArrayList<String>htextaslist = new ArrayList<>(Arrays.asList(htext.trim().split("\\r?\\n")));
String v=StringUtils.normalizeSpace( htext.trim());
Boolean flag=false;
try {
for (int i=0;i<htextaslist.size();i++) {
System.out.println("entire linr"+letter);
System.out.println("htext"+htextaslist.get(i));
if (letter.trim().contains(htextaslist.get(i).trim())) {
System.out.println("boolran"+"0inside");
flag=true;
if(flag)
{
break;
}
}
else {
flag=false;
}
}
} catch (PatternSyntaxException e) {
// TODO: handle exception
flag=true;
}
if(flag) {
return new Text(letter)
.setBackgroundColor(Color.GREEN)
.setFontColor(Color.BLACK)
.setFont(helveticaBoldFont);
} else {
return new Text(String.valueOf(letter))
.setFontColor(Color.BLACK)
.setFont(helveticaFont);
}
}
我可以突出显示整行,但是我需要突出显示特定的文本,即“ htext”,仅在一行中突出显示。
我不对段落中的数据进行硬编码 我在for循环中调用此方法,例如
outputaslist = new ArrayList<>(Arrays.asList(output.split("\\r?\\n")));
for (int s = 0; s < outputaslist.size(); s++) {
paragraph.add(returnCorrectColor(outputaslist.get(s),testcaselist.get(i).getHtext(),helveticaFont,helveticaBoldFont));
paragraph.add("\n");
}
有什么办法吗?
我的一个示例输入
outputActive Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN
1185/systemd-resolv
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1441/cupsd
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 1780/nginx: master
tcp 0 0 127.0.0.1:35373 0.0.0.0:* LISTEN 1616/containerd
tcp 0 0 10.10.100.242:51938 13.33.60.102:443 TIME_WAIT -
tcp 0 0 10.10.100.242:52762 34.210.242.116:443 ESTABLISHED 6994/firefox
我只想突出显示输出中的收听内容
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。