aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/scratchpad/src/org/apache/poi/hslf/extractor/PowerPointExtractor.java10
-rw-r--r--src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Footer.pptbin0 -> 13312 bytes
-rw-r--r--src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Header.pptbin0 -> 12288 bytes
-rw-r--r--src/scratchpad/testcases/org/apache/poi/hslf/extractor/TextExtractor.java35
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
new file mode 100644
index 0000000000..f358b14e9d
--- /dev/null
+++ b/src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Footer.ppt
Binary files differ
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
new file mode 100644
index 0000000000..e09d7752b7
--- /dev/null
+++ b/src/scratchpad/testcases/org/apache/poi/hslf/data/45537_Header.ppt
Binary files differ
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"));
+ }
}