首页 > 编程知识 正文

pdf高亮颜色怎么改,word怎么高亮重复项

时间:2023-05-04 09:18:02 阅读:231835 作者:237

文章目录 问题情境相关jar包Java实现程序
Email:1563178220@qq.com 内容可能有不到之处,欢迎交流。

未经本人允许禁止转载

问题情境

在word中存在多个表格,每个表格会有一些使用不同颜色标注的高亮文本,那么如何利用编程语言自动的提出这些高亮文本呢?这便是本文的问题情境,针对此,我使用Java实现了这一功能。

针对上面,这个表格(只匹配表格中的红色、黄色、蓝色、绿色对应的文本),Java程序的输出结果为:

处理时,这里不考虑表格的表头。

相关jar包

使用maven可以配置相关jar包,具体如下:

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.17</version></dependency><!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency>

同时,还需要下载poi-scratchpad-3.17.jar:

Java实现程序 package com.qian.word;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Arrays;import java.util.Iterator;import java.util.List;import org.apache.poi.xwpf.usermodel.XWPFDocument;import org.apache.poi.xwpf.usermodel.XWPFParagraph;import org.apache.poi.xwpf.usermodel.XWPFRun;import org.apache.poi.xwpf.usermodel.XWPFTable;import org.apache.poi.xwpf.usermodel.XWPFTableCell;import org.apache.poi.xwpf.usermodel.XWPFTableRow;public class WordRead {public static void main(String[] args) throws IOException {//设置要匹配的颜色--16进制颜色代码String[] colors = {"FF0000", //红色"FFFF00", //黄色"0000FF", //蓝色"00FF00" //绿色};InputStream in = new FileInputStream("data/wordtext.docx"); //docx文件@SuppressWarnings("resource")XWPFDocument xdoc = new XWPFDocument(in);Iterator<XWPFTable> itTable = xdoc.getTablesIterator(); //获取word文件中的表格XWPFTable table;int tableIndex = 0; //表格编号System.out.println("表格编号" + "t" + "行" + "t" + "列" + "t" + "文本" + "t" + "高亮颜色" + "t");while (itTable.hasNext()) { //循环word中的每个表格tableIndex++;table = itTable.next();XWPFTableRow row;List<XWPFTableCell> cells;for (int i = 0; i < table.getNumberOfRows(); i++) {if(i == 0) //这里设置是否包含表头continue;row = table.getRow(i); //获取word表格的每一行cells = row.getTableCells(); //针对每一行的所有单元格for (int j = 0; j < cells.size(); j++) {XWPFTableCell cell = cells.get(j); //获取单个单元格//获取单元格相同字体颜色+文字XWPFParagraph paras = cell.getParagraphs().get(0); //获取包含段落的列表--只有一段List<XWPFRun> runsLists = paras.getRuns();//获取段落中的列表for(XWPFRun xL:runsLists){String c = xL.getColor(); String text = xL.text(); if (c!=null&&Arrays.asList(colors).contains(c)) {System.out.println(tableIndex + "t" + i + "t" + j + "t" + text + "t" + c + "t");}}}}}}}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。