]> source.dussan.org Git - poi.git/commitdiff
Add get/set indentationLeftChars/indentationRightChars in paragraph
authorSayi <sayi@apache.org>
Thu, 27 Aug 2020 04:16:56 +0000 (04:16 +0000)
committerSayi <sayi@apache.org>
Thu, 27 Aug 2020 04:16:56 +0000 (04:16 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1881232 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFParagraph.java
src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFParagraph.java

index d28ead68bee0346395113d759ff5ad4ea41c2aa1..58064b00fd1ba50b35ac6999c22192cd20373043 100644 (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
index 3ce354b089cd168587d294c258af53a5139ff02c..6dd394a2156248a40ac967d4a9a973e05fb557db 100644 (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