]> source.dussan.org Git - poi.git/commitdiff
Begin on test for going from xwpf text to style
authorNick Burch <nick@apache.org>
Thu, 7 May 2015 12:37:43 +0000 (12:37 +0000)
committerNick Burch <nick@apache.org>
Thu, 7 May 2015 12:37:43 +0000 (12:37 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1678179 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFStyles.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFStyles.java

index 824d39d717d064ff19d647beb4611bed207725b3..9c6319c56e794279c1b65ae29de97914d7125710 100644 (file)
@@ -43,8 +43,10 @@ import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTLanguage;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTFonts;
 import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTDocDefaults;
 /**
- * @author Philipp Epp
- *
+ * Holds details of built-in, default and user styles, which
+ *  apply to tables / paragraphs / lists etc.
+ * Text within one of those with custom stylings has the style
+ *  information stored in the {@link XWPFRun}
  */
 public class XWPFStyles extends POIXMLDocumentPart{
     
@@ -83,8 +85,6 @@ public class XWPFStyles extends POIXMLDocumentPart{
       } catch (XmlException e) {
          throw new POIXMLException("Unable to read styles", e);
       }
-      
-      
    }
        
    @Override
@@ -154,6 +154,9 @@ public class XWPFStyles extends POIXMLDocumentPart{
                }
                return null;
        }
+       public int getNumberOfStyles() {
+           return listStyle.size();
+       }
 
        /**
         * get the styles which are related to the parameter style and their relatives
index c29d5020850200ecf757cd7687c165a05b4b70d4..3e7d54b900428525b48acd59174bf61d555e38b4 100644 (file)
@@ -138,4 +138,52 @@ public class TestXWPFStyles extends TestCase {
         styles = docIn.getStyles();
         assertTrue(styles.styleExist(strStyleId));
     }
+    
+    public void testEasyAccessToStyles() throws IOException {
+        XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("SampleDoc.docx");
+        XWPFStyles styles = doc.getStyles();
+        assertNotNull(styles);
+        
+        // Has 3 paragraphs on page one, a break, and 3 on page 2
+        assertEquals(7, doc.getParagraphs().size());
+        
+        // Check the first three have no run styles, just default paragraph style
+        for (int i=0; i<3; i++) {
+            XWPFParagraph p = doc.getParagraphs().get(i);
+            assertEquals(null, p.getStyle());
+            assertEquals(null, p.getStyleID());
+            assertEquals(1, p.getRuns().size());
+            
+            XWPFRun r = p.getRuns().get(0);
+            assertEquals(null, r.getColor());
+            assertEquals(null, r.getFontFamily());
+            assertEquals(null, r.getFontName());
+            assertEquals(-1, r.getFontSize());
+        }
+        
+        // On page two, has explicit styles, but on runs not on
+        //  the paragraph itself
+        for (int i=4; i<7; i++) {
+            XWPFParagraph p = doc.getParagraphs().get(i);
+            assertEquals(null, p.getStyle());
+            assertEquals(null, p.getStyleID());
+            assertEquals(1, p.getRuns().size());
+            
+            XWPFRun r = p.getRuns().get(0);
+            assertEquals("Arial Black", r.getFontFamily());
+            assertEquals("Arial Black", r.getFontName());
+            assertEquals(16, r.getFontSize());
+            assertEquals("548DD4", r.getColor());
+        }
+        
+        // Check the document styles
+        // Should have a style defined for each type
+        assertEquals(4, styles.getNumberOfStyles());
+        assertNotNull(styles.getStyle("Normal"));
+        assertNotNull(styles.getStyle("DefaultParagraphFont"));
+        assertNotNull(styles.getStyle("TableNormal"));
+        assertNotNull(styles.getStyle("NoList"));
+        
+        // TODO Check latent and default
+    }
 }