Fix bug 58067: XWPF: don't return deleted text when document is in review-mode
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1722715 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
bc6a4a20d4
commit
ff8592b190
@ -215,7 +215,13 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para
|
|||||||
public String getText() {
|
public String getText() {
|
||||||
StringBuffer out = new StringBuffer();
|
StringBuffer out = new StringBuffer();
|
||||||
for (IRunElement run : iruns) {
|
for (IRunElement run : iruns) {
|
||||||
if (run instanceof XWPFSDT) {
|
if (run instanceof XWPFRun) {
|
||||||
|
XWPFRun xRun = (XWPFRun) run;
|
||||||
|
// don't include the text if reviewing is enabled and this is a deleted run
|
||||||
|
if (!xRun.getCTR().isSetRsidDel()) {
|
||||||
|
out.append(xRun.toString());
|
||||||
|
}
|
||||||
|
} else if (run instanceof XWPFSDT) {
|
||||||
out.append(((XWPFSDT) run).getContent().getText());
|
out.append(((XWPFSDT) run).getContent().getText());
|
||||||
} else {
|
} else {
|
||||||
out.append(run.toString());
|
out.append(run.toString());
|
||||||
|
@ -584,4 +584,15 @@ public final class TestXWPFParagraph {
|
|||||||
assertNull(p.getRun(null));
|
assertNull(p.getRun(null));
|
||||||
doc.close();
|
doc.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void test58067() throws IOException {
|
||||||
|
XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("58067.docx");
|
||||||
|
|
||||||
|
StringBuilder str = new StringBuilder();
|
||||||
|
for(XWPFParagraph par : doc.getParagraphs()) {
|
||||||
|
str.append(par.getText()).append("\n");
|
||||||
|
}
|
||||||
|
assertEquals("This is a test.\n\n\n\n3\n4\n5\n\n\n\nThis is a whole paragraph where one word is deleted.\n", str.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
BIN
test-data/document/58067.docx
Normal file
BIN
test-data/document/58067.docx
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user