git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1526960 13f79535-47bb-0310-9956-ffa450edef68tags/REL_3_10_FINAL
// Slide text | // Slide text | ||||
textRunsToText(ret, slide.getTextRuns()); | textRunsToText(ret, slide.getTextRuns()); | ||||
// Table text | |||||
for (Shape shape : slide.getShapes()){ | |||||
if (shape instanceof Table){ | |||||
extractTableText(ret, (Table)shape); | |||||
} | |||||
} | |||||
// Slide footer, if set | // Slide footer, if set | ||||
if (hf != null && hf.isFooterVisible() && hf.getFooterText() != null) { | if (hf != null && hf.isFooterVisible() && hf.getFooterText() != null) { | ||||
ret.append(hf.getFooterText() + "\n"); | ret.append(hf.getFooterText() + "\n"); | ||||
return ret.toString(); | return ret.toString(); | ||||
} | } | ||||
private void extractTableText(StringBuffer ret, Table table) { | |||||
for (int row = 0; row < table.getNumberOfRows(); row++){ | |||||
for (int col = 0; col < table.getNumberOfColumns(); col++){ | |||||
TableCell cell = table.getCell(row, col); | |||||
//defensive null checks; don't know if they're necessary | |||||
if (cell != null){ | |||||
String txt = cell.getText(); | |||||
txt = (txt == null) ? "" : txt; | |||||
ret.append(txt); | |||||
if (col < table.getNumberOfColumns()-1){ | |||||
ret.append("\t"); | |||||
} | |||||
} | |||||
} | |||||
ret.append('\n'); | |||||
} | |||||
} | |||||
private void textRunsToText(StringBuffer ret, TextRun[] runs) { | private void textRunsToText(StringBuffer ret, TextRun[] runs) { | ||||
if (runs==null) { | if (runs==null) { | ||||
return; | return; |
assertEquals(expectText, extractor.getText()); | assertEquals(expectText, extractor.getText()); | ||||
} | } | ||||
} | } | ||||
public void testTable() throws Exception{ | |||||
ppe = new PowerPointExtractor(slTests.openResourceAsStream("54111.ppt")); | |||||
String text = ppe.getText(); | |||||
String target = "TH Cell 1\tTH Cell 2\tTH Cell 3\tTH Cell 4\n"+ | |||||
"Row 1, Cell 1\tRow 1, Cell 2\tRow 1, Cell 3\tRow 1, Cell 4\n"+ | |||||
"Row 2, Cell 1\tRow 2, Cell 2\tRow 2, Cell 3\tRow 2, Cell 4\n"+ | |||||
"Row 3, Cell 1\tRow 3, Cell 2\tRow 3, Cell 3\tRow 3, Cell 4\n"+ | |||||
"Row 4, Cell 1\tRow 4, Cell 2\tRow 4, Cell 3\tRow 4, Cell 4\n"+ | |||||
"Row 5, Cell 1\tRow 5, Cell 2\tRow 5, Cell 3\tRow 5, Cell 4\n"; | |||||
assertTrue(text.contains(target)); | |||||
ppe = new PowerPointExtractor(slTests.openResourceAsStream("54722.ppt")); | |||||
text = ppe.getText(); | |||||
target = "this\tText\tis\twithin\ta\n"+ | |||||
"table\t1\t2\t3\t4"; | |||||
assertTrue(text.contains(target)); | |||||
} | |||||
} | } |