使用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");
}

我当前的输出类似于上面的输出,但是我希望下面的输出

current output

Expected output

有什么办法吗?

我的一个示例输入

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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...