mirror of https://github.com/apache/poi.git
#45088 - POI-HSLF changeTextInRichTextRun corrupts presentation
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1711845 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
cff4102574
commit
4bf040e711
|
@ -689,4 +689,34 @@ public final class TestBugs {
|
|||
|
||||
ppt2.close();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void bug45088() throws IOException {
|
||||
String template = "[SYSDATE]";
|
||||
String textExp = "REPLACED_DATE_WITH_A_LONG_ONE";
|
||||
|
||||
HSLFSlideShow ppt1 = (HSLFSlideShow)SlideShowFactory.create(_slTests.getFile("bug45088.ppt"));
|
||||
for (HSLFSlide slide : ppt1.getSlides()) {
|
||||
for (List<HSLFTextParagraph> paraList : slide.getTextParagraphs()) {
|
||||
for (HSLFTextParagraph para : paraList) {
|
||||
for (HSLFTextRun run : para.getTextRuns()) {
|
||||
String text = run.getRawText();
|
||||
if (text != null && text.contains(template)) {
|
||||
String replacedText = text.replace(template, textExp);
|
||||
run.setText(replacedText);
|
||||
para.setDirty();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
HSLFSlideShow ppt2 = HSLFTestDataSamples.writeOutAndReadBack(ppt1);
|
||||
ppt1.close();
|
||||
|
||||
HSLFTextBox tb = (HSLFTextBox)ppt2.getSlides().get(0).getShapes().get(1);
|
||||
String textAct = tb.getTextParagraphs().get(0).getTextRuns().get(0).getRawText().trim();
|
||||
assertEquals(textExp, textAct);
|
||||
ppt2.close();
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue