From: Sayi Date: Thu, 27 Aug 2020 04:16:56 +0000 (+0000) Subject: Add get/set indentationLeftChars/indentationRightChars in paragraph X-Git-Tag: before_ooxml_3rd_edition~131 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=17e3eaadaeac87fabe76de8eb3236c6ff4672a17;p=poi.git Add get/set indentationLeftChars/indentationRightChars in paragraph git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1881232 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java b/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java index d28ead68be..58064b00fd 100644 --- a/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java +++ b/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 + *

+ * 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. + *

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

+ * 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. + *

+ * + * @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 diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java index 3ce354b089..6dd394a215 100644 --- a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java +++ b/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