瀏覽代碼

Add get/set indentationLeftChars/indentationRightChars in paragraph

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1881232 13f79535-47bb-0310-9956-ffa450edef68
tags/before_ooxml_3rd_edition
Sayi 3 年之前
父節點
當前提交
17e3eaadae

+ 52
- 0
src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java 查看文件

@@ -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

+ 16
- 1
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java 查看文件

@@ -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

Loading…
取消
儲存