Index: src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java =================================================================== --- src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java (revision 1401817) +++ src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java (working copy) @@ -52,6 +52,7 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDrawing; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTEmpty; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFtnEdnRef; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHpsMeasure; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTOnOff; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTPTab; @@ -817,6 +818,14 @@ text.append("\n"); } } + + if(o instanceof CTFtnEdnRef) { + CTFtnEdnRef ftn = (CTFtnEdnRef)o; + String footnoteRef = ftn.getDomNode().getLocalName().equals("footnoteReference") ? + "fnote" : "enote"; + footnoteRef = "[" + footnoteRef + ":" + ftn.getId().intValue() + "]"; + text.append(footnoteRef); + } } c.dispose(); Index: src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java =================================================================== --- src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java (revision 1401817) +++ src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java (working copy) @@ -168,6 +168,7 @@ XWPFWordExtractor extractor = new XWPFWordExtractor(doc); assertTrue(extractor.getText().contains("snoska")); + assertTrue(extractor.getText().contains("Eto ochen prostoy[fnote:1] text so snoskoy")); }