]> source.dussan.org Git - poi.git/commitdiff
Patch from akhikhl from github pull #3 - Extract references from XWPF footnotes
authorNick Burch <nick@apache.org>
Wed, 12 Jun 2013 17:54:39 +0000 (17:54 +0000)
committerNick Burch <nick@apache.org>
Wed, 12 Jun 2013 17:54:39 +0000 (17:54 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1492308 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFRun.java
src/ooxml/testcases/org/apache/poi/xwpf/extractor/TestXWPFWordExtractor.java

index 282fca6d11122a4887f238ec972bfb3e46af2edf..d6bc531bfd5fb1f1023744926561966a20641b2d 100644 (file)
@@ -52,6 +52,7 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTColor;
 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,12 @@ public class XWPFRun {
                     text.append("\n");
                 }
             }
+            if (o instanceof CTFtnEdnRef) {
+                CTFtnEdnRef ftn = (CTFtnEdnRef)o;
+                String footnoteRef = ftn.getDomNode().getLocalName().equals("footnoteReference") ?
+                    "[footnoteRef:" + ftn.getId().intValue() + "]" : "[endnoteRef:" + ftn.getId().intValue() + "]";
+                text.append(footnoteRef);
+            }            
         }
 
         c.dispose();
index 46188f5ed8d49bb085c060b25ea0ca8d381a3ea0..34d20aae7453c1678b0b0c3c141dbb3b86d7712f 100644 (file)
@@ -166,8 +166,9 @@ public class TestXWPFWordExtractor extends TestCase {
     public void testFootnotes() throws IOException {
         XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("footnotes.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
-
-        assertTrue(extractor.getText().contains("snoska"));
+        String text = extractor.getText();
+        assertTrue(text.contains("snoska"));
+        assertTrue(text.contains("Eto ochen prostoy[footnoteRef:1] text so snoskoy"));
     }
 
 
@@ -190,8 +191,9 @@ public class TestXWPFWordExtractor extends TestCase {
     public void testEndnotes() throws IOException {
         XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("endnotes.docx");
         XWPFWordExtractor extractor = new XWPFWordExtractor(doc);
-
-        assertTrue(extractor.getText().contains("XXX"));
+        String text = extractor.getText();
+        assertTrue(text.contains("XXX"));
+        assertTrue(text.contains("tilaka [endnoteRef:2]or 'tika'"));
     }
 
     public void testInsertedDeletedText() throws IOException {