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/21 18:32:53 UTC
svn commit: r1173749 - in /poi/trunk/src:
documentation/content/xdocs/status.xml
ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java
ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java
Author: nick
Date: Wed Sep 21 16:32:52 2011
New Revision: 1173749
URL: http://svn.apache.org/viewvc?rev=1173749&view=rev
Log:
Fix bug #51804 - Include Master Slide text in XSLF text extraction
Modified:
poi/trunk/src/documentation/content/xdocs/status.xml
poi/trunk/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java
Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=1173749&r1=1173748&r2=1173749&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Wed Sep 21 16:32:52 2011
@@ -34,6 +34,7 @@
<changes>
<release version="3.8-beta5" date="2011-??-??">
+ <action dev="poi-developers" type="add">51804 - include Master Slide text in XSLF text extraction</action>
<action dev="poi-developers" type="add">New PackagePart method getRelatedPart(PackageRelationship) to simplify navigation of relations between OPC Parts</action>
<action dev="poi-developers" type="fix">51832 - handle XLS files where the WRITEPROTECT record preceeds the FILEPASS one, rather than following as normal</action>
<action dev="poi-developers" type="fix">51809 - correct GTE handling in COUNTIF</action>
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=1173749&r1=1173748&r2=1173749&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 Wed Sep 21 16:32:52 2011
@@ -30,6 +30,7 @@ import org.apache.poi.xslf.usermodel.XSL
import org.apache.poi.xslf.usermodel.XSLFNotes;
import org.apache.poi.xslf.usermodel.XSLFRelation;
import org.apache.poi.xslf.usermodel.XSLFSlide;
+import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.xmlbeans.XmlException;
import org.openxmlformats.schemas.presentationml.x2006.main.CTComment;
import org.openxmlformats.schemas.presentationml.x2006.main.CTCommentAuthor;
@@ -105,12 +106,19 @@ public class XSLFPowerPointExtractor ext
try {
XSLFNotes notes = slide.getNotes();
XSLFComments comments = slide.getComments();
+ XSLFSlideMaster master = slide.getMasterSheet();
// TODO Do the slide's name
+ // (Stored in docProps/app.xml)
// Do the slide's text if requested
if (slideText) {
extractText(slide.getCommonSlideData(), text);
+
+ // If there's a master sheet, grab text from there
+ if(master != null) {
+ extractText(master.getCommonSlideData(), text);
+ }
// If the slide has comments, do those too
if (comments != null) {
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java?rev=1173749&r1=1173748&r2=1173749&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java Wed Sep 21 16:32:52 2011
@@ -26,17 +26,19 @@ import junit.framework.TestCase;
* Tests for HXFPowerPointExtractor
*/
public class TestXSLFPowerPointExtractor extends TestCase {
- /**
- * A simple file
- */
- private XSLFSlideShow xmlA;
- private OPCPackage pkg;
+ /**
+ * A simple file
+ */
+ private XSLFSlideShow xmlA;
+ private OPCPackage pkg;
+
+ private POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
- protected void setUp() throws Exception {
- POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
- pkg = OPCPackage.open(slTests.openResourceAsStream("sample.pptx"));
- xmlA = new XSLFSlideShow(pkg);
- }
+ protected void setUp() throws Exception {
+ slTests = POIDataSamples.getSlideShowInstance();
+ pkg = OPCPackage.open(slTests.openResourceAsStream("sample.pptx"));
+ xmlA = new XSLFSlideShow(pkg);
+ }
/**
* Get text out of the simple file
@@ -54,7 +56,16 @@ public class TestXSLFPowerPointExtractor
// Check Basics
assertTrue(text.startsWith("Lorem ipsum dolor sit amet\n"));
- assertTrue(text.endsWith("amet\n\n"));
+ assertTrue(text.contains("amet\n\n"));
+
+ // Our master text, for tests
+ String masterText =
+ "Click to edit Master title style\n" +
+ "Click to edit Master text styles\n" +
+ "Second level\n" +
+ "Third level\n" +
+ "Fourth level\n" +
+ "Fifth level\n";
// Just slides, no notes
text = extractor.getText(true, false);
@@ -62,13 +73,18 @@ public class TestXSLFPowerPointExtractor
"Lorem ipsum dolor sit amet\n" +
"Nunc at risus vel erat tempus posuere. Aenean non ante.\n" +
"\n" +
+ masterText +
+ "\n\n\n" +
"Lorem ipsum dolor sit amet\n" +
"Lorem\n" +
"ipsum\n" +
"dolor\n" +
"sit\n" +
"amet\n" +
- "\n", text
+ "\n" +
+ masterText +
+ "\n\n\n"
+ , text
);
// Just notes, no slides
@@ -82,14 +98,19 @@ public class TestXSLFPowerPointExtractor
assertEquals(
"Lorem ipsum dolor sit amet\n" +
"Nunc at risus vel erat tempus posuere. Aenean non ante.\n" +
- "\n\n\n" +
+ "\n" +
+ masterText +
+ "\n\n\n\n\n" +
"Lorem ipsum dolor sit amet\n" +
"Lorem\n" +
"ipsum\n" +
"dolor\n" +
"sit\n" +
"amet\n" +
- "\n\n\n", text
+ "\n" +
+ masterText +
+ "\n\n\n\n\n"
+ , text
);
// Via set defaults
@@ -101,28 +122,41 @@ public class TestXSLFPowerPointExtractor
);
}
- public void testGetComments() throws Exception {
- POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
- xmlA = new XSLFSlideShow(OPCPackage.open(slTests.openResourceAsStream("45545_Comment.pptx")));
- XSLFPowerPointExtractor extractor =
- new XSLFPowerPointExtractor(xmlA);
-
- String text = extractor.getText();
- assertTrue(text.length() > 0);
-
- // Check comments are there
- assertTrue("Unable to find expected word in text\n" + text, text.contains("testdoc"));
+ public void testGetComments() throws Exception {
+ XSLFSlideShow xml =
+ new XSLFSlideShow(OPCPackage.open(slTests.openResourceAsStream("45545_Comment.pptx")));
+ XSLFPowerPointExtractor extractor =
+ new XSLFPowerPointExtractor(xml);
+
+ String text = extractor.getText();
+ assertTrue(text.length() > 0);
+
+ // Check comments are there
+ assertTrue("Unable to find expected word in text\n" + text, text.contains("testdoc"));
assertTrue("Unable to find expected word in text\n" + text, text.contains("test phrase"));
-
- // Check the authors came through too
+
+ // Check the authors came through too
assertTrue("Unable to find expected word in text\n" + text, text.contains("XPVMWARE01"));
+ }
+
+ public void testGetMasterText() throws Exception {
+ XSLFSlideShow xml =
+ new XSLFSlideShow(OPCPackage.open(slTests.openResourceAsStream("WithMaster.pptx")));
+ XSLFPowerPointExtractor extractor =
+ new XSLFPowerPointExtractor(xml);
+
+ String text = extractor.getText();
+ assertTrue(text.length() > 0);
+
+ // Check master text is there
+ assertTrue("Unable to find expected word in text\n" + text, text.contains("Master footer is here"));
}
public void testTable() throws Exception {
- POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
- xmlA = new XSLFSlideShow(OPCPackage.open(slTests.openResourceAsStream("present1.pptx")));
+ XSLFSlideShow xml =
+ new XSLFSlideShow(OPCPackage.open(slTests.openResourceAsStream("present1.pptx")));
XSLFPowerPointExtractor extractor =
- new XSLFPowerPointExtractor(xmlA);
+ new XSLFPowerPointExtractor(xml);
String text = extractor.getText();
assertTrue(text.length() > 0);
@@ -137,7 +171,6 @@ public class TestXSLFPowerPointExtractor
* well as from the normal file
*/
public void testDifferentSubformats() throws Exception {
- POIDataSamples slTests = POIDataSamples.getSlideShowInstance();
String[] extensions = new String[] {
"pptx", "pptm", "ppsm", "ppsx",
"thmx",
@@ -145,9 +178,10 @@ public class TestXSLFPowerPointExtractor
};
for(String extension : extensions) {
String filename = "testPPT." + extension;
- xmlA = new XSLFSlideShow(OPCPackage.open(slTests.openResourceAsStream(filename)));
+ XSLFSlideShow xml =
+ new XSLFSlideShow(OPCPackage.open(slTests.openResourceAsStream(filename)));
XSLFPowerPointExtractor extractor =
- new XSLFPowerPointExtractor(xmlA);
+ new XSLFPowerPointExtractor(xml);
String text = extractor.getText();
if(extension.equals("thmx")) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org