Add get/set indentationLeftChars/indentationRightChars in paragraph

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1881232 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Sayi 2020-08-27 04:16:56 +00:00
parent 5e04140d59
commit 17e3eaadae
2 changed files with 68 additions and 1 deletions

View File

@ -1166,6 +1166,32 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para
indent.setLeft(bi);
}
/**
* Get the indentation which is placed at the left/start of this paragraph
*
* @return indentation in hundredths of a character unit or -1 if indentation is not set
*/
public int getIndentationLeftChars() {
CTInd indentation = getCTInd(false);
return (indentation != null && indentation.isSetLeftChars()) ? indentation.getLeftChars().intValue()
: -1;
}
/**
* Specifies the indentation which shall be placed at the left/start of this paragraph
* <p>
* If this attribute is omitted, its value shall be assumed to be zero.
* if the left/start attribute is specified, then its value is ignored, and is superseded by this value.
* </p>
*
* @param indentation this value is specified in hundredths of a character unit
*/
public void setIndentationLeftChars(int indentation) {
CTInd indent = getCTInd(true);
BigInteger bi = new BigInteger(Integer.toString(indentation));
indent.setLeftChars(bi);
}
/**
* Specifies the indentation which shall be placed between the right text
* margin for this paragraph and the right edge of that paragraph's content
@ -1205,6 +1231,32 @@ public class XWPFParagraph implements IBodyElement, IRunBody, ISDTContents, Para
indent.setRight(bi);
}
/**
* Get the indentation which is placed at the right/end of this paragraph
*
* @return indentation in hundredths of a character unit or -1 if indentation is not set
*/
public int getIndentationRightChars() {
CTInd indentation = getCTInd(false);
return (indentation != null && indentation.isSetRightChars()) ? indentation.getRightChars().intValue()
: -1;
}
/**
* Specifies the indentation which shall be placed at the right/end of this paragraph
* <p>
* If this attribute is omitted, its value shall be assumed to be zero.
* if the right/end attribute is specified, then its value is ignored, and is superseded by this value.
* </p>
*
* @param indentation this value is specified in hundredths of a character unit
*/
public void setIndentationRightChars(int indentation) {
CTInd indent = getCTInd(true);
BigInteger bi = new BigInteger(Integer.toString(indentation));
indent.setRightChars(bi);
}
/**
* Specifies the indentation which shall be removed from the first line of
* the parent paragraph, by moving the indentation on the first line back

View File

@ -201,6 +201,22 @@ public final class TestXWPFParagraph {
}
}
@Test
public void testSetGetIndentationChars() throws IOException {
try (XWPFDocument doc = new XWPFDocument()) {
XWPFParagraph p = doc.createParagraph();
assertEquals(-1, p.getIndentationLeftChars());
assertEquals(-1, p.getIndentationRightChars());
// set 1.5 characters
p.setIndentationLeftChars(150);
assertEquals(150, p.getIndentationLeftChars());
p.setIndentationRightChars(250);
assertEquals(250, p.getIndentationRightChars());
}
}
@Test
public void testSetGetIndentation() throws IOException {
try (XWPFDocument doc = new XWPFDocument()) {
@ -221,7 +237,6 @@ public final class TestXWPFParagraph {
assertEquals(100, ind.getLeft().intValue());
}
}
@Test
public void testSetGetVerticalAlignment() throws IOException {
//new clean instance of paragraph