public static boolean isDot(XWPFRun run){ boolean flag=false; if(run.getCTR()!=null){ if(run.getCTR().getRPr()!=null){ if(run.getCTR().getRPr().getEm()!=null){ if(run.getCTR().getRPr().getEm().getVal().toString().toLowerCase().equals("dot")){ flag=true; } } } } return flag; } public static boolean isSuperscript(XWPFRun run){ boolean flag=false; if(run.getCTR()!=null){ if(run.getCTR().getRPr()!=null){ if(run.getCTR().getRPr().getVertAlign()!=null){ if(run.getCTR().getRPr().getVertAlign().getVal().toString().toLowerCase().equals("superscript")){ flag=true; } } } } return flag; } public static boolean isSubscript(XWPFRun run){ boolean flag=false; if(run.getCTR()!=null){ if(run.getCTR().getRPr()!=null){ if(run.getCTR().getRPr().getVertAlign()!=null){ if(run.getCTR().getRPr().getVertAlign().getVal().toString().toLowerCase().equals("subscript")){ flag=true; } } } } return flag; } public static boolean isUnder(XWPFRun run){ boolean flag=false; if(run.getCTR()!=null){ if(run.getCTR().getRPr()!=null){ if(run.getCTR().getRPr().getU()!=null){ if(run.getCTR().getRPr().getU().getVal().toString().toLowerCase().equals("single")){ flag=true; } } } } return flag; } public void testWord() throws IOException{ InputStream is = new FileInputStream("D:\\test.docx"); XWPFDocument doc = new XWPFDocument(is); List<XWPFParagraph> paras = doc.getParagraphs(); for (XWPFParagraph para : paras) { List<XWPFRun>rList=para.getRuns(); for(int i=0;i<rList.size();i++){ if(isUnder(rList.get(i))){ System.out.println("线"); System.out.println(rList.get(i).text()); } if(isDot(rList.get(i))){ System.out.println("点"); System.out.println(rList.get(i).text()); } if(isSuperscript(rList.get(i))){ System.out.println("上"); System.out.println(rList.get(i).text()); } if(isSubscript(rList.get(i))){ System.out.println("下"); System.out.println(rList.get(i).text()); } } } this.close(is); }