You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2011/09/04 22:51:21 UTC

svn commit: r1165109 - /poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java

Author: nick
Date: Sun Sep  4 20:51:21 2011
New Revision: 1165109

URL: http://svn.apache.org/viewvc?rev=1165109&view=rev
Log:
Convert the XSLF text extractor from using the old style low level code to use usermodel

Modified:
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java?rev=1165109&r1=1165108&r2=1165109&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java Sun Sep  4 20:51:21 2011
@@ -16,22 +16,21 @@
 ==================================================================== */
 package org.apache.poi.xslf.extractor;
 
+import java.io.IOException;
+
 import org.apache.poi.POIXMLTextExtractor;
 import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.xslf.XSLFSlideShow;
 import org.apache.poi.xslf.usermodel.DrawingParagraph;
 import org.apache.poi.xslf.usermodel.XMLSlideShow;
+import org.apache.poi.xslf.usermodel.XSLFComments;
 import org.apache.poi.xslf.usermodel.XSLFCommonSlideData;
+import org.apache.poi.xslf.usermodel.XSLFNotes;
 import org.apache.poi.xslf.usermodel.XSLFRelation;
 import org.apache.poi.xslf.usermodel.XSLFSlide;
 import org.apache.xmlbeans.XmlException;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTComment;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTCommentList;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTNotesSlide;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideIdListEntry;
-
-import java.io.IOException;
 
 public class XSLFPowerPointExtractor extends POIXMLTextExtractor {
    public static final XSLFRelation[] SUPPORTED_TYPES = new XSLFRelation[] {
@@ -89,51 +88,50 @@ public class XSLFPowerPointExtractor ext
 		return getText(slidesByDefault, notesByDefault);
 	}
 	
-	/**
-	 * Gets the requested text from the file
-	 * @param slideText Should we retrieve text from slides?
-	 * @param notesText Should we retrieve text from notes?
-	 */
-	public String getText(boolean slideText, boolean notesText) {
-		StringBuffer text = new StringBuffer();
+   /**
+    * Gets the requested text from the file
+    * @param slideText Should we retrieve text from slides?
+    * @param notesText Should we retrieve text from notes?
+    */
+   public String getText(boolean slideText, boolean notesText) {
+      StringBuffer text = new StringBuffer();
+
+      XSLFSlide[] slides = slideshow.getSlides();
+
+      for (XSLFSlide slide : slides) {
+         try {
+            XSLFNotes notes = slide.getNotes();
+            XSLFComments comments = slide.getComments();
+
+            // TODO Do the slide's name
+
+            // Do the slide's text if requested
+            if (slideText) {
+               extractText(slide.getCommonSlideData(), text);
+
+               // If the slide has comments, do those too
+               if (comments != null) {
+                  for (CTComment comment : comments.getCTCommentsList().getCmList()) {
+                     // TODO - comment authors too
+                     // (They're in another stream)
+                     text.append(
+                           comment.getText() + "\n"
+                     );
+                  }
+               }
+            }
 
-		XSLFSlide[] slides = slideshow.getSlides();
-        try {
-            XSLFSlideShow xsl = new XSLFSlideShow(slideshow.getPackage());
-            for (int i = 0; i < slides.length; i++) {
-                CTSlideIdListEntry slideId = slideshow.getCTPresentation().getSldIdLst().getSldIdArray(i);
-
-                // For now, still very low level
-                CTNotesSlide notes =
-                        xsl.getNotes(slideId);
-                CTCommentList comments =
-                        xsl.getSlideComments(slideId);
-
-                if (slideText) {
-                    extractText(new XSLFCommonSlideData(slides[i].getXmlObject().getCSld()), text);
-
-                    // Comments too for the slide
-                    if (comments != null) {
-                        for (CTComment comment : comments.getCmList()) {
-                            // TODO - comment authors too
-                            // (They're in another stream)
-                            text.append(
-                                    comment.getText() + "\n"
-                            );
-                        }
-                    }
-                }
-
-                if (notesText && notes != null) {
-                    extractText(new XSLFCommonSlideData(notes.getCSld()), text);
-                }
+            // Do the notes if requested
+            if (notesText && notes != null) {
+               extractText(notes.getCommonSlideData(), text);
             }
-        } catch (Exception e) {
+         } catch (Exception e) {
             throw new RuntimeException(e);
-        }
+         }
+      }
 
-        return text.toString();
-	}
+      return text.toString();
+   }
 	
 	private void extractText(XSLFCommonSlideData data, StringBuffer text) {
         for (DrawingParagraph p : data.getText()) {



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org