瀏覽代碼

#45088 - POI-HSLF changeTextInRichTextRun corrupts presentation

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1711845 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_14_BETA1
Andreas Beeker 8 年之前
父節點
當前提交
4bf040e711
共有 2 個檔案被更改,包括 30 行新增0 行删除
  1. 30
    0
      src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestBugs.java
  2. 二進制
      test-data/slideshow/bug45088.ppt

+ 30
- 0
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestBugs.java 查看文件

@@ -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();
}
}

二進制
test-data/slideshow/bug45088.ppt 查看文件


Loading…
取消
儲存