diff options
author | Nick Burch <nick@apache.org> | 2011-09-21 16:54:22 +0000 |
---|---|---|
committer | Nick Burch <nick@apache.org> | 2011-09-21 16:54:22 +0000 |
commit | d12375b4c0e45d2010251ef0bf07ffdd6d74b1ea (patch) | |
tree | 48c77ce9127bd46ceee2fea165059af7ce6544b6 /src | |
parent | 3f43242f1a483845c17a217cd3c2b0faf3e5e6a0 (diff) | |
download | poi-d12375b4c0e45d2010251ef0bf07ffdd6d74b1ea.tar.gz poi-d12375b4c0e45d2010251ef0bf07ffdd6d74b1ea.zip |
Update the XSLF slide master text extraction to be optional, as HSLF already is, plus fix some indents
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1173756 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src')
4 files changed, 74 insertions, 24 deletions
diff --git a/src/documentation/content/xdocs/status.xml b/src/documentation/content/xdocs/status.xml index 350f4b2550..ef7ad52d5b 100644 --- a/src/documentation/content/xdocs/status.xml +++ b/src/documentation/content/xdocs/status.xml @@ -34,7 +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">51804 - optionally include Master Slide text in XSLF text extraction, as HSLF already offers</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> diff --git a/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java b/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java index 930d16142c..9563f664a2 100644 --- a/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java +++ b/src/ooxml/java/org/apache/poi/xslf/extractor/XSLFPowerPointExtractor.java @@ -45,6 +45,7 @@ public class XSLFPowerPointExtractor extends POIXMLTextExtractor { private XMLSlideShow slideshow; private boolean slidesByDefault = true; private boolean notesByDefault = false; + private boolean masterByDefault = false; public XSLFPowerPointExtractor(XMLSlideShow slideshow) { super(slideshow); @@ -84,6 +85,13 @@ public class XSLFPowerPointExtractor extends POIXMLTextExtractor { this.notesByDefault = notesByDefault; } + /** + * Should a call to getText() return text from master? Default is no + */ + public void setMasterByDefault(boolean masterByDefault) { + this.masterByDefault = masterByDefault; + } + /** * Gets the slide text, but not the notes text */ @@ -97,6 +105,16 @@ public class XSLFPowerPointExtractor extends POIXMLTextExtractor { * @param notesText Should we retrieve text from notes? */ public String getText(boolean slideText, boolean notesText) { + return getText(slideText, notesText, masterByDefault); + } + + /** + * Gets the requested text from the file + * @param slideText Should we retrieve text from slides? + * @param notesText Should we retrieve text from notes? + * @param masterText Should we retrieve text from master slides? + */ + public String getText(boolean slideText, boolean notesText, boolean masterText) { StringBuffer text = new StringBuffer(); XSLFSlide[] slides = slideshow.getSlides(); @@ -115,8 +133,8 @@ public class XSLFPowerPointExtractor extends POIXMLTextExtractor { if (slideText) { extractText(slide.getCommonSlideData(), text); - // If there's a master sheet, grab text from there - if(master != null) { + // If there's a master sheet and it's requested, grab text from there + if(masterText && master != null) { extractText(master.getCommonSlideData(), text); } diff --git a/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java b/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java index 2b575fe56a..cfaf344be9 100644 --- a/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java +++ b/src/ooxml/testcases/org/apache/poi/xslf/extractor/TestXSLFPowerPointExtractor.java @@ -68,22 +68,18 @@ public class TestXSLFPowerPointExtractor extends TestCase { "Fifth level\n"; // Just slides, no notes - text = extractor.getText(true, false); + text = extractor.getText(true, false, false); assertEquals( "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" + - masterText + - "\n\n\n" + "\n" , text ); @@ -94,25 +90,61 @@ public class TestXSLFPowerPointExtractor extends TestCase { ); // Both - text = extractor.getText(true, true); + text = extractor.getText(true, true, false); assertEquals( "Lorem ipsum dolor sit amet\n" + "Nunc at risus vel erat tempus posuere. Aenean non ante.\n" + - "\n" + - masterText + - "\n\n\n\n\n" + + "\n\n\n" + "Lorem ipsum dolor sit amet\n" + "Lorem\n" + "ipsum\n" + "dolor\n" + "sit\n" + "amet\n" + - "\n" + - masterText + - "\n\n\n\n\n" + "\n\n\n" , text ); + // With Slides and Master Text + text = extractor.getText(true, false, true); + assertEquals( + "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" + + masterText + + "\n\n\n" + , text + ); + + // With Slides, Notes and Master Text + text = extractor.getText(true, true, true); + assertEquals( + "Lorem ipsum dolor sit amet\n" + + "Nunc at risus vel erat tempus posuere. Aenean non ante.\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" + + masterText + + "\n\n\n\n\n" + , text + ); + // Via set defaults extractor.setSlidesByDefault(false); extractor.setNotesByDefault(true); diff --git a/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java b/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java index 239df9a69a..8a195ac258 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java +++ b/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java @@ -39,14 +39,14 @@ import org.apache.poi.poifs.filesystem.POIFSFileSystem; * @author Nick Burch */ public final class PowerPointExtractor extends POIOLE2TextExtractor { - private HSLFSlideShow _hslfshow; - private SlideShow _show; - private Slide[] _slides; - - private boolean _slidesByDefault = true; - private boolean _notesByDefault = false; - private boolean _commentsByDefault = false; - private boolean _masterByDefault = false; + private HSLFSlideShow _hslfshow; + private SlideShow _show; + private Slide[] _slides; + + private boolean _slidesByDefault = true; + private boolean _notesByDefault = false; + private boolean _commentsByDefault = false; + private boolean _masterByDefault = false; /** * Basic extractor. Returns all the text, and optionally all the notes |