diff options
-rw-r--r-- | src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java | 10 | ||||
-rw-r--r-- | src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Footer.ppt | bin | 0 -> 13312 bytes | |||
-rw-r--r-- | src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Header.ppt | bin | 0 -> 12288 bytes | |||
-rw-r--r-- | src/scratchpad/testcases/org/apache/poi/hslf/extractor/TextExtractor.java | 35 |
4 files changed, 45 insertions, 0 deletions
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 9dddb700bd..95900a45ef 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java +++ b/src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java @@ -175,6 +175,12 @@ public class PowerPointExtractor extends POIOLE2TextExtractor if(getSlideText) { for(int i=0; i<_slides.length; i++) { Slide slide = _slides[i]; + + HeadersFooters hf = slide.getHeadersFooters(); + if(hf != null && hf.getHeaderText() != null) { + ret.append(hf.getHeaderText() + "\n"); + } + TextRun[] runs = slide.getTextRuns(); for(int j=0; j<runs.length; j++) { TextRun run = runs[j]; @@ -187,6 +193,10 @@ public class PowerPointExtractor extends POIOLE2TextExtractor } } + if(hf != null && hf.getFooterText() != null) { + ret.append(hf.getFooterText() + "\n"); + } + if(getCommentText) { Comment[] comments = slide.getComments(); for(int j=0; j<comments.length; j++) { diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Footer.ppt b/src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Footer.ppt Binary files differnew file mode 100644 index 0000000000..f358b14e9d --- /dev/null +++ b/src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Footer.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Header.ppt b/src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Header.ppt Binary files differnew file mode 100644 index 0000000000..e09d7752b7 --- /dev/null +++ b/src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Header.ppt diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TextExtractor.java b/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TextExtractor.java index 35113866f2..2fbdb6af92 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TextExtractor.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/extractor/TextExtractor.java @@ -24,6 +24,7 @@ package org.apache.poi.hslf.extractor; import java.io.FileInputStream; import org.apache.poi.hslf.HSLFSlideShow; +import org.apache.poi.hslf.usermodel.SlideShow; import org.apache.poi.poifs.filesystem.DirectoryNode; import org.apache.poi.poifs.filesystem.POIFSFileSystem; @@ -248,4 +249,38 @@ public class TextExtractor extends TestCase { text = ppe.getText(); assertTrue("Unable to find expected word in text\n" + text, text.contains("testdoc")); } + + /** + * From bug #45537 + */ + public void DISABLEDtestHeaderFooter() throws Exception { + String filename, text; + + // With a header + filename = dirname + "/45537_Header.ppt"; + HSLFSlideShow hslf = new HSLFSlideShow(new FileInputStream(filename)); + SlideShow ss = new SlideShow(hslf); + assertNotNull(ss.getSlides()[0].getHeadersFooters()); + assertEquals("testdoc test phrase", ss.getSlides()[0].getHeadersFooters().getHeaderText()); + + ppe = new PowerPointExtractor(hslf); + + text = ppe.getText(); + 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")); + + + // And with a footer + filename = dirname + "/45537_Footer.ppt"; + hslf = new HSLFSlideShow(new FileInputStream(filename)); + ss = new SlideShow(hslf); + assertNotNull(ss.getSlides()[0].getHeadersFooters()); + assertEquals("testdoc test phrase", ss.getSlides()[0].getHeadersFooters().getFooterText()); + + ppe = new PowerPointExtractor(filename); + + text = ppe.getText(); + 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")); + } } |