com.aspose.words

Class ParagraphFormat

  • java.lang.Object
    • com.aspose.words.ParagraphFormat
public class ParagraphFormat 
extends java.lang.Object

Represents all the formatting for a paragraph.

Example:

Creates a simple document from scratch using the Aspose.Words object model.
// Create an "empty" document. Note that like in Microsoft Word,
// the empty document has one section, body and one paragraph in it.
Document doc = new Document();

// This truly makes the document empty. No sections (not possible in Microsoft Word).
doc.removeAllChildren();

// Create a new section node.
// Note that the section has not yet been added to the document,
// but we have to specify the parent document.
Section section = new Section(doc);

// Append the section to the document.
doc.appendChild(section);

// Lets set some properties for the section.
section.getPageSetup().setSectionStart(SectionStart.NEW_PAGE);
section.getPageSetup().setPaperSize(PaperSize.LETTER);

// The section that we created is empty, lets populate it. The section needs at least the Body node.
Body body = new Body(doc);
section.appendChild(body);

// The body needs to have at least one paragraph.
// Note that the paragraph has not yet been added to the document,
// but we have to specify the parent document.
// The parent document is needed so the paragraph can correctly work
// with styles and other document-wide information.
Paragraph para = new Paragraph(doc);
body.appendChild(para);

// We can set some formatting for the paragraph
para.getParagraphFormat().setStyleName("Heading 1");
para.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);

// So far we have one empty paragraph in the document.
// The document is valid and can be saved, but lets add some text before saving.
// Create a new run of text and add it to our paragraph.
Run run = new Run(doc);
run.setText("Hello World!");
run.getFont().setColor(Color.RED);
para.appendChild(run);

// As a matter of interest, you can retrieve text of the whole document and
// see that \x000c is automatically appended. \x000c is the end of section character.
System.out.println(doc.getText());

// Save the document.
doc.save(getArtifactsDir() + "Section.CreateFromScratch.doc");

Property Getters/Setters Summary
booleangetAddSpaceBetweenFarEastAndAlpha()
void
           Gets or sets a flag indicating whether inter-character spacing is automatically adjusted between regions of Latin text and regions of East Asian text in the current paragraph.
booleangetAddSpaceBetweenFarEastAndDigit()
void
           Gets or sets a flag indicating whether inter-character spacing is automatically adjusted between regions of numbers and regions of East Asian text in the current paragraph.
intgetAlignment()
void
setAlignment(intvalue)
           Gets or sets text alignment for the paragraph. The value of the property is ParagraphAlignment integer constant.
booleangetBidi()
void
setBidi(booleanvalue)
           Gets or sets whether this is a right-to-left paragraph.
BorderCollectiongetBorders()
Gets collection of borders of the paragraph.
intgetDropCapPosition()
void
           Gets or sets the position for a drop cap text. The value of the property is DropCapPosition integer constant.
booleangetFarEastLineBreakControl()
void
           Gets or sets a flag indicating whether East Asian line-breaking rules are applied to the current paragraph.
doublegetFirstLineIndent()
void
setFirstLineIndent(doublevalue)
           Gets or sets the value (in points) for a first line or hanging indent. Use a positive value to set a first-line indent, and use a negative value to set a hanging indent.
booleangetHangingPunctuation()
void
setHangingPunctuation(booleanvalue)
           Gets or sets a flag indicating whether hanging punctuation is enabled for the current paragraph.
booleanisHeading()
True when the paragraph style is one of the built-in Heading styles.
booleanisListItem()
True when the paragraph is an item in a bulleted or numbered list.
booleangetKeepTogether()
void
setKeepTogether(booleanvalue)
           True if all lines in the paragraph are to remain on the same page.
booleangetKeepWithNext()
void
setKeepWithNext(booleanvalue)
           True if the paragraph is to remains on the same page as the paragraph that follows it.
doublegetLeftIndent()
void
setLeftIndent(doublevalue)
           Gets or sets the value (in points) that represents the left indent for paragraph.
doublegetLineSpacing()
void
setLineSpacing(doublevalue)
           Gets or sets the line spacing (in points) for the paragraph.
intgetLineSpacingRule()
void
           Gets or sets the line spacing for the paragraph. The value of the property is LineSpacingRule integer constant.
intgetLinesToDrop()
void
setLinesToDrop(intvalue)
           Gets or sets the number of lines of the paragraph text used to calculate the drop cap height.
booleangetNoSpaceBetweenParagraphsOfSameStyle()
void
           When true, SpaceBefore and SpaceAfter will be ignored between the paragraphs of the same style.
intgetOutlineLevel()
void
setOutlineLevel(intvalue)
           Specifies the outline level of the paragraph in the document. The value of the property is OutlineLevel integer constant.
booleangetPageBreakBefore()
void
setPageBreakBefore(booleanvalue)
           True if a page break is forced before the paragraph.
doublegetRightIndent()
void
setRightIndent(doublevalue)
           Gets or sets the value (in points) that represents the right indent for paragraph.
ShadinggetShading()
Returns a Shading object that refers to the shading formatting for the paragraph.
doublegetSpaceAfter()
void
setSpaceAfter(doublevalue)
           Gets or sets the amount of spacing (in points) after the paragraph.
booleangetSpaceAfterAuto()
void
setSpaceAfterAuto(booleanvalue)
           True if the amount of spacing after the paragraph is set automatically.
doublegetSpaceBefore()
void
setSpaceBefore(doublevalue)
           Gets or sets the amount of spacing (in points) before the paragraph.
booleangetSpaceBeforeAuto()
void
setSpaceBeforeAuto(booleanvalue)
           True if the amount of spacing before the paragraph is set automatically.
StylegetStyle()
void
setStyle(Style value)
           Gets or sets the paragraph style applied to this formatting.
intgetStyleIdentifier()
void
           Gets or sets the locale independent style identifier of the paragraph style applied to this formatting. The value of the property is StyleIdentifier integer constant.
java.lang.StringgetStyleName()
void
setStyleName(java.lang.Stringvalue)
           Gets or sets the name of the paragraph style applied to this formatting.
booleangetSuppressAutoHyphens()
void
           Specifies whether the current paragraph should be exempted from any hyphenation which is applied in the document settings.
booleangetSuppressLineNumbers()
void
           Specifies whether the current paragraph's lines should be exempted from line numbering which is applied in the parent section.
TabStopCollectiongetTabStops()
Gets the collection of custom tab stops defined for this object.
booleangetWidowControl()
void
setWidowControl(booleanvalue)
           True if the first and last lines in the paragraph are to remain on the same page as the rest of the paragraph.
booleangetWordWrap()
void
setWordWrap(booleanvalue)
           If this property is false, Latin text in the middle of a word can be wrapped for the current paragraph. Otherwise Latin text is wrapped by whole words.
 
Method Summary
voidclearFormatting()
Resets to default paragraph formatting.
 

    • Property Getters/Setters Detail

      • getAddSpaceBetweenFarEastAndAlpha/setAddSpaceBetweenFarEastAndAlpha

        public boolean getAddSpaceBetweenFarEastAndAlpha() / public void setAddSpaceBetweenFarEastAndAlpha(boolean value)
        
        Gets or sets a flag indicating whether inter-character spacing is automatically adjusted between regions of Latin text and regions of East Asian text in the current paragraph.

        Example:

        Shows how to insert a paragraph into the document.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Specify font formatting
        Font font = builder.getFont();
        font.setSize(16);
        font.setBold(true);
        font.setColor(Color.BLUE);
        font.setName("Arial");
        font.setUnderline(Underline.DASH);
        
        // Specify paragraph formatting
        ParagraphFormat paragraphFormat = builder.getParagraphFormat();
        paragraphFormat.setFirstLineIndent(8);
        paragraphFormat.setAlignment(ParagraphAlignment.JUSTIFY);
        paragraphFormat.setAddSpaceBetweenFarEastAndAlpha(true);
        paragraphFormat.setAddSpaceBetweenFarEastAndDigit(true);
        paragraphFormat.setKeepTogether(true);
        
        builder.writeln("A whole paragraph.");
        
        // We can use this flag to ensure that we're at the end of the document
        Assert.assertTrue(builder.getCurrentParagraph().isEndOfDocument());
      • getAddSpaceBetweenFarEastAndDigit/setAddSpaceBetweenFarEastAndDigit

        public boolean getAddSpaceBetweenFarEastAndDigit() / public void setAddSpaceBetweenFarEastAndDigit(boolean value)
        
        Gets or sets a flag indicating whether inter-character spacing is automatically adjusted between regions of numbers and regions of East Asian text in the current paragraph.

        Example:

        Shows how to insert a paragraph into the document.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Specify font formatting
        Font font = builder.getFont();
        font.setSize(16);
        font.setBold(true);
        font.setColor(Color.BLUE);
        font.setName("Arial");
        font.setUnderline(Underline.DASH);
        
        // Specify paragraph formatting
        ParagraphFormat paragraphFormat = builder.getParagraphFormat();
        paragraphFormat.setFirstLineIndent(8);
        paragraphFormat.setAlignment(ParagraphAlignment.JUSTIFY);
        paragraphFormat.setAddSpaceBetweenFarEastAndAlpha(true);
        paragraphFormat.setAddSpaceBetweenFarEastAndDigit(true);
        paragraphFormat.setKeepTogether(true);
        
        builder.writeln("A whole paragraph.");
        
        // We can use this flag to ensure that we're at the end of the document
        Assert.assertTrue(builder.getCurrentParagraph().isEndOfDocument());
      • getAlignment/setAlignment

        public int getAlignment() / public void setAlignment(int value)
        
        Gets or sets text alignment for the paragraph. The value of the property is ParagraphAlignment integer constant.

        Example:

        Shows how to insert a paragraph into the document.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Specify font formatting
        Font font = builder.getFont();
        font.setSize(16);
        font.setBold(true);
        font.setColor(Color.BLUE);
        font.setName("Arial");
        font.setUnderline(Underline.DASH);
        
        // Specify paragraph formatting
        ParagraphFormat paragraphFormat = builder.getParagraphFormat();
        paragraphFormat.setFirstLineIndent(8);
        paragraphFormat.setAlignment(ParagraphAlignment.JUSTIFY);
        paragraphFormat.setAddSpaceBetweenFarEastAndAlpha(true);
        paragraphFormat.setAddSpaceBetweenFarEastAndDigit(true);
        paragraphFormat.setKeepTogether(true);
        
        builder.writeln("A whole paragraph.");
        
        // We can use this flag to ensure that we're at the end of the document
        Assert.assertTrue(builder.getCurrentParagraph().isEndOfDocument());

        Example:

        Creates a simple document from scratch using the Aspose.Words object model.
        // Create an "empty" document. Note that like in Microsoft Word,
        // the empty document has one section, body and one paragraph in it.
        Document doc = new Document();
        
        // This truly makes the document empty. No sections (not possible in Microsoft Word).
        doc.removeAllChildren();
        
        // Create a new section node.
        // Note that the section has not yet been added to the document,
        // but we have to specify the parent document.
        Section section = new Section(doc);
        
        // Append the section to the document.
        doc.appendChild(section);
        
        // Lets set some properties for the section.
        section.getPageSetup().setSectionStart(SectionStart.NEW_PAGE);
        section.getPageSetup().setPaperSize(PaperSize.LETTER);
        
        // The section that we created is empty, lets populate it. The section needs at least the Body node.
        Body body = new Body(doc);
        section.appendChild(body);
        
        // The body needs to have at least one paragraph.
        // Note that the paragraph has not yet been added to the document,
        // but we have to specify the parent document.
        // The parent document is needed so the paragraph can correctly work
        // with styles and other document-wide information.
        Paragraph para = new Paragraph(doc);
        body.appendChild(para);
        
        // We can set some formatting for the paragraph
        para.getParagraphFormat().setStyleName("Heading 1");
        para.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
        
        // So far we have one empty paragraph in the document.
        // The document is valid and can be saved, but lets add some text before saving.
        // Create a new run of text and add it to our paragraph.
        Run run = new Run(doc);
        run.setText("Hello World!");
        run.getFont().setColor(Color.RED);
        para.appendChild(run);
        
        // As a matter of interest, you can retrieve text of the whole document and
        // see that \x000c is automatically appended. \x000c is the end of section character.
        System.out.println(doc.getText());
        
        // Save the document.
        doc.save(getArtifactsDir() + "Section.CreateFromScratch.doc");
      • getBidi/setBidi

        public boolean getBidi() / public void setBidi(boolean value)
        
        Gets or sets whether this is a right-to-left paragraph.

        When true, the runs and other inline objects in this paragraph are laid out right to left.

        Example:

        Shows how to create RTL lists with BIDIOUTLINE fields.
        // Create a blank document and a document builder
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Use our builder to insert a BIDIOUTLINE field
        // This field numbers paragraphs like the AUTONUM/LISTNUM fields,
        // but is only visible when a RTL editing language is enabled, such as Hebrew or Arabic
        // The following field will display ".1", the RTL equivalent of list number "1."
        FieldBidiOutline field = (FieldBidiOutline) builder.insertField(FieldType.FIELD_BIDI_OUTLINE, true);
        Assert.assertEquals(field.getFieldCode(), " BIDIOUTLINE ");
        builder.writeln("שלום");
        
        // Add two more BIDIOUTLINE fields, which will be automatically numbered ".2" and ".3"
        builder.insertField(FieldType.FIELD_BIDI_OUTLINE, true);
        builder.writeln("שלום");
        builder.insertField(FieldType.FIELD_BIDI_OUTLINE, true);
        builder.writeln("שלום");
        
        // Set the horizontal text alignment for every paragraph in the document to RTL
        for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
            para.getParagraphFormat().setBidi(true);
        }
        
        // If a RTL editing language is enabled in Microsoft Word, out fields will display numbers
        // Otherwise, they will appear as "###"
        doc.save(getArtifactsDir() + "Field.BIDIOUTLINE.docx");
      • getBorders

        public BorderCollection getBorders()
        
        Gets collection of borders of the paragraph.

        Example:

        Inserts a paragraph with a top border.
        DocumentBuilder builder = new DocumentBuilder();
        
        Border topBorder = builder.getParagraphFormat().getBorders().getByBorderType(BorderType.TOP);
        topBorder.setColor(Color.RED);
        topBorder.setLineStyle(LineStyle.DASH_SMALL_GAP);
        topBorder.setLineWidth(4);
        
        builder.writeln("Hello World!");
      • getDropCapPosition/setDropCapPosition

        public int getDropCapPosition() / public void setDropCapPosition(int value)
        
        Gets or sets the position for a drop cap text. The value of the property is DropCapPosition integer constant.

        Example:

        Shows how to start a numbered list, add a bulleted list inside it, then return to the numbered list.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Create an outline list for the headings.
        List outlineList = doc.getLists().add(ListTemplate.OUTLINE_NUMBERS);
        builder.getListFormat().setList(outlineList);
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        builder.writeln("This is my Chapter 1");
        
        // Create a numbered list.
        List numberedList = doc.getLists().add(ListTemplate.NUMBER_DEFAULT);
        builder.getListFormat().setList(numberedList);
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.NORMAL);
        builder.writeln("Numbered list item 1.");
        
        // Every paragraph that comprises a list will have this flag
        Assert.assertTrue(builder.getCurrentParagraph().isListItem());
        Assert.assertTrue(builder.getParagraphFormat().isListItem());
        
        // Create a bulleted list.
        List bulletedList = doc.getLists().add(ListTemplate.BULLET_DEFAULT);
        builder.getListFormat().setList(bulletedList);
        builder.getParagraphFormat().setLeftIndent(72);
        builder.writeln("Bulleted list item 1.");
        builder.writeln("Bulleted list item 2.");
        builder.getParagraphFormat().clearFormatting();
        
        // Revert to the numbered list.
        builder.getListFormat().setList(numberedList);
        builder.writeln("Numbered list item 2.");
        builder.writeln("Numbered list item 3.");
        
        // Revert to the outline list.
        builder.getListFormat().setList(outlineList);
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        builder.writeln("This is my Chapter 2");
        
        builder.getParagraphFormat().clearFormatting();
        
        builder.getDocument().save(getArtifactsDir() + "Lists.NestedLists.docx");
      • getFarEastLineBreakControl/setFarEastLineBreakControl

        public boolean getFarEastLineBreakControl() / public void setFarEastLineBreakControl(boolean value)
        
        Gets or sets a flag indicating whether East Asian line-breaking rules are applied to the current paragraph.

        Example:

        Shows how to set special properties for Asian typography.
        Document doc = new Document(getMyDir() + "Document.docx");
        
        ParagraphFormat format = doc.getFirstSection().getBody().getParagraphs().get(0).getParagraphFormat();
        format.setFarEastLineBreakControl(true);
        format.setWordWrap(false);
        format.setHangingPunctuation(true);
        
        doc.save(getArtifactsDir() + "Paragraph.AsianTypographyProperties.docx");
      • getFirstLineIndent/setFirstLineIndent

        public double getFirstLineIndent() / public void setFirstLineIndent(double value)
        
        Gets or sets the value (in points) for a first line or hanging indent. Use a positive value to set a first-line indent, and use a negative value to set a hanging indent.

        Example:

        Shows how to insert a paragraph into the document.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Specify font formatting
        Font font = builder.getFont();
        font.setSize(16);
        font.setBold(true);
        font.setColor(Color.BLUE);
        font.setName("Arial");
        font.setUnderline(Underline.DASH);
        
        // Specify paragraph formatting
        ParagraphFormat paragraphFormat = builder.getParagraphFormat();
        paragraphFormat.setFirstLineIndent(8);
        paragraphFormat.setAlignment(ParagraphAlignment.JUSTIFY);
        paragraphFormat.setAddSpaceBetweenFarEastAndAlpha(true);
        paragraphFormat.setAddSpaceBetweenFarEastAndDigit(true);
        paragraphFormat.setKeepTogether(true);
        
        builder.writeln("A whole paragraph.");
        
        // We can use this flag to ensure that we're at the end of the document
        Assert.assertTrue(builder.getCurrentParagraph().isEndOfDocument());
      • getHangingPunctuation/setHangingPunctuation

        public boolean getHangingPunctuation() / public void setHangingPunctuation(boolean value)
        
        Gets or sets a flag indicating whether hanging punctuation is enabled for the current paragraph.

        Example:

        Shows how to set special properties for Asian typography.
        Document doc = new Document(getMyDir() + "Document.docx");
        
        ParagraphFormat format = doc.getFirstSection().getBody().getParagraphs().get(0).getParagraphFormat();
        format.setFarEastLineBreakControl(true);
        format.setWordWrap(false);
        format.setHangingPunctuation(true);
        
        doc.save(getArtifactsDir() + "Paragraph.AsianTypographyProperties.docx");
      • isHeading

        public boolean isHeading()
        
        True when the paragraph style is one of the built-in Heading styles.

        Example:

        Shows how to create missing outline levels saving the document in PDF
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Creating TOC entries
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        Assert.assertTrue(builder.getParagraphFormat().isHeading());
        
        builder.writeln("Heading 1");
        
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_4);
        
        builder.writeln("Heading 1.1.1.1");
        builder.writeln("Heading 1.1.1.2");
        
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_9);
        
        builder.writeln("Heading 1.1.1.1.1.1.1.1.1");
        builder.writeln("Heading 1.1.1.1.1.1.1.1.2");
        
        // Create "PdfSaveOptions" with some mandatory parameters
        // "HeadingsOutlineLevels" specifies how many levels of headings to include in the document outline
        // "CreateMissingOutlineLevels" determining whether or not to create missing heading levels
        PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
        pdfSaveOptions.getOutlineOptions().setHeadingsOutlineLevels(9);
        pdfSaveOptions.getOutlineOptions().setCreateMissingOutlineLevels(true);
        pdfSaveOptions.setSaveFormat(SaveFormat.PDF);
        
        doc.save(getArtifactsDir() + "CreateMissingOutlineLevels.pdf", pdfSaveOptions);
      • isListItem

        public boolean isListItem()
        
        True when the paragraph is an item in a bulleted or numbered list.

        Example:

        Shows how to start a numbered list, add a bulleted list inside it, then return to the numbered list.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Create an outline list for the headings.
        List outlineList = doc.getLists().add(ListTemplate.OUTLINE_NUMBERS);
        builder.getListFormat().setList(outlineList);
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        builder.writeln("This is my Chapter 1");
        
        // Create a numbered list.
        List numberedList = doc.getLists().add(ListTemplate.NUMBER_DEFAULT);
        builder.getListFormat().setList(numberedList);
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.NORMAL);
        builder.writeln("Numbered list item 1.");
        
        // Every paragraph that comprises a list will have this flag
        Assert.assertTrue(builder.getCurrentParagraph().isListItem());
        Assert.assertTrue(builder.getParagraphFormat().isListItem());
        
        // Create a bulleted list.
        List bulletedList = doc.getLists().add(ListTemplate.BULLET_DEFAULT);
        builder.getListFormat().setList(bulletedList);
        builder.getParagraphFormat().setLeftIndent(72);
        builder.writeln("Bulleted list item 1.");
        builder.writeln("Bulleted list item 2.");
        builder.getParagraphFormat().clearFormatting();
        
        // Revert to the numbered list.
        builder.getListFormat().setList(numberedList);
        builder.writeln("Numbered list item 2.");
        builder.writeln("Numbered list item 3.");
        
        // Revert to the outline list.
        builder.getListFormat().setList(outlineList);
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        builder.writeln("This is my Chapter 2");
        
        builder.getParagraphFormat().clearFormatting();
        
        builder.getDocument().save(getArtifactsDir() + "Lists.NestedLists.docx");
      • getKeepTogether/setKeepTogether

        public boolean getKeepTogether() / public void setKeepTogether(boolean value)
        
        True if all lines in the paragraph are to remain on the same page.

        Example:

        Shows how to insert a paragraph into the document.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Specify font formatting
        Font font = builder.getFont();
        font.setSize(16);
        font.setBold(true);
        font.setColor(Color.BLUE);
        font.setName("Arial");
        font.setUnderline(Underline.DASH);
        
        // Specify paragraph formatting
        ParagraphFormat paragraphFormat = builder.getParagraphFormat();
        paragraphFormat.setFirstLineIndent(8);
        paragraphFormat.setAlignment(ParagraphAlignment.JUSTIFY);
        paragraphFormat.setAddSpaceBetweenFarEastAndAlpha(true);
        paragraphFormat.setAddSpaceBetweenFarEastAndDigit(true);
        paragraphFormat.setKeepTogether(true);
        
        builder.writeln("A whole paragraph.");
        
        // We can use this flag to ensure that we're at the end of the document
        Assert.assertTrue(builder.getCurrentParagraph().isEndOfDocument());
      • getKeepWithNext/setKeepWithNext

        public boolean getKeepWithNext() / public void setKeepWithNext(boolean value)
        
        True if the paragraph is to remains on the same page as the paragraph that follows it.

        Example:

        Shows how to set a table to stay together on the same page.
        // To keep a table from breaking across a page we need to enable KeepWithNext
        // for every paragraph in the table except for the last paragraphs in the last
        // row of the table.
        for (Cell cell : (Iterable<Cell>) table.getChildNodes(NodeType.CELL, true)) {
            for (Paragraph para : cell.getParagraphs()) {
                // Every paragraph that's inside a cell will have this flag set
                Assert.assertTrue(para.isInCell());
        
                if (!(cell.getParentRow().isLastRow() && para.isEndOfCell())) {
                    para.getParagraphFormat().setKeepWithNext(true);
                }
            }
        }
      • getLeftIndent/setLeftIndent

        public double getLeftIndent() / public void setLeftIndent(double value)
        
        Gets or sets the value (in points) that represents the left indent for paragraph.

        Example:

        Shows how to set paragraph formatting.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set paragraph formatting properties
        ParagraphFormat paragraphFormat = builder.getParagraphFormat();
        paragraphFormat.setAlignment(ParagraphAlignment.CENTER);
        paragraphFormat.setLeftIndent(50);
        paragraphFormat.setRightIndent(50);
        paragraphFormat.setSpaceAfter(25);
        
        // Output text
        builder.writeln("I'm a very nice formatted paragraph. I'm intended to demonstrate how the left and right indents affect word wrapping.");
        builder.writeln("I'm another nice formatted paragraph. I'm intended to demonstrate how the space after paragraph looks like.");
      • getLineSpacing/setLineSpacing

        public double getLineSpacing() / public void setLineSpacing(double value)
        
        Gets or sets the line spacing (in points) for the paragraph.

        When LineSpacingRule property is set to AtLeast, the line spacing can be greater than or equal to, but never less than the specified LineSpacing value.

        When LineSpacingRule property is set to Exactly, the line spacing never changes from the specified LineSpacing value, even if a larger font is used within the paragraph.

        Example:

        Shows how to work with line spacing.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set the paragraph's line spacing to have a minimum value
        // This will give vertical padding to lines of text of any size that's too small to maintain the line height
        builder.getParagraphFormat().setLineSpacingRule(LineSpacingRule.AT_LEAST);
        builder.getParagraphFormat().setLineSpacing(20.0);
        
        builder.writeln("Minimum line spacing of 20.");
        builder.writeln("Minimum line spacing of 20.");
        
        // Set the line spacing to always be exactly 5 points
        // If the font size is larger than the spacing, the top of the text will be truncated
        builder.insertParagraph();
        builder.getParagraphFormat().setLineSpacingRule(LineSpacingRule.EXACTLY);
        builder.getParagraphFormat().setLineSpacing(5.0);
        
        builder.writeln("Line spacing of exactly 5.");
        builder.writeln("Line spacing of exactly 5.");
        
        // Set the line spacing to a multiple of the default line spacing, which is 12 points by default
        // 18 points will set the spacing to always be 1.5 lines, which will scale with different font sizes
        builder.insertParagraph();
        builder.getParagraphFormat().setLineSpacingRule(LineSpacingRule.MULTIPLE);
        builder.getParagraphFormat().setLineSpacing(18.0);
        
        builder.writeln("Line spacing of 1.5 default lines.");
        builder.writeln("Line spacing of 1.5 default lines.");
        
        doc.save(getArtifactsDir() + "Paragraph.LineSpacing.docx");
      • getLineSpacingRule/setLineSpacingRule

        public int getLineSpacingRule() / public void setLineSpacingRule(int value)
        
        Gets or sets the line spacing for the paragraph. The value of the property is LineSpacingRule integer constant.

        Example:

        Shows how to work with line spacing.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set the paragraph's line spacing to have a minimum value
        // This will give vertical padding to lines of text of any size that's too small to maintain the line height
        builder.getParagraphFormat().setLineSpacingRule(LineSpacingRule.AT_LEAST);
        builder.getParagraphFormat().setLineSpacing(20.0);
        
        builder.writeln("Minimum line spacing of 20.");
        builder.writeln("Minimum line spacing of 20.");
        
        // Set the line spacing to always be exactly 5 points
        // If the font size is larger than the spacing, the top of the text will be truncated
        builder.insertParagraph();
        builder.getParagraphFormat().setLineSpacingRule(LineSpacingRule.EXACTLY);
        builder.getParagraphFormat().setLineSpacing(5.0);
        
        builder.writeln("Line spacing of exactly 5.");
        builder.writeln("Line spacing of exactly 5.");
        
        // Set the line spacing to a multiple of the default line spacing, which is 12 points by default
        // 18 points will set the spacing to always be 1.5 lines, which will scale with different font sizes
        builder.insertParagraph();
        builder.getParagraphFormat().setLineSpacingRule(LineSpacingRule.MULTIPLE);
        builder.getParagraphFormat().setLineSpacing(18.0);
        
        builder.writeln("Line spacing of 1.5 default lines.");
        builder.writeln("Line spacing of 1.5 default lines.");
        
        doc.save(getArtifactsDir() + "Paragraph.LineSpacing.docx");
      • getLinesToDrop/setLinesToDrop

        public int getLinesToDrop() / public void setLinesToDrop(int value)
        
        Gets or sets the number of lines of the paragraph text used to calculate the drop cap height.

        Example:

        Shows how to set the size of the drop cap text.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Setting this attribute will designate the current paragraph as a drop cap,
        // in this case with a height of 4 lines of text
        builder.getParagraphFormat().setLinesToDrop(4);
        builder.write("H");
        
        // Any subsequent paragraphs will wrap around the drop cap
        builder.insertParagraph();
        builder.write("ello world.");
        
        doc.save(getArtifactsDir() + "Paragraph.LinesToDrop.odt");
      • getNoSpaceBetweenParagraphsOfSameStyle/setNoSpaceBetweenParagraphsOfSameStyle

        public boolean getNoSpaceBetweenParagraphsOfSameStyle() / public void setNoSpaceBetweenParagraphsOfSameStyle(boolean value)
        
        When true, SpaceBefore and SpaceAfter will be ignored between the paragraphs of the same style.

        This setting only takes affect when applied to a paragraph style. If applied to a paragraph directly, it has no effect.

        Example:

        Shows how to work with paragraph spacing.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set the amount of white space before and after each paragraph to 12 points
        builder.getParagraphFormat().setSpaceBefore(12.0f);
        builder.getParagraphFormat().setSpaceAfter(12.0f);
        
        // We can set these flags to apply default spacing, effectively ignoring the spacing in the attributes we set above
        Assert.assertFalse(builder.getParagraphFormat().getSpaceAfterAuto());
        Assert.assertFalse(builder.getParagraphFormat().getSpaceBeforeAuto());
        Assert.assertFalse(builder.getParagraphFormat().getNoSpaceBetweenParagraphsOfSameStyle());
        
        // Insert two paragraphs which will have padding above and below them and save the document
        builder.writeln("Paragraph 1.");
        builder.writeln("Paragraph 2.");
        
        doc.save(getArtifactsDir() + "Paragraph.ParagraphSpacing.docx");
      • getOutlineLevel/setOutlineLevel

        public int getOutlineLevel() / public void setOutlineLevel(int value)
        
        Specifies the outline level of the paragraph in the document. The value of the property is OutlineLevel integer constant.

        Example:

        Shows how to set paragraph outline levels to create collapsible text.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Each paragraph has an OutlineLevel, which could be any number from 1 to 9, or at the default "BodyText" value
        // Setting the attribute to one of the numbered values will enable an arrow in Microsoft Word
        // next to the beginning of the paragraph that, when clicked, will collapse the paragraph
        builder.getParagraphFormat().setOutlineLevel(com.aspose.words.OutlineLevel.LEVEL_1);
        builder.writeln("Paragraph outline level 1.");
        
        // Level 1 is the topmost level, which practically means that clicking its arrow will also collapse
        // any following paragraph with a lower level, like the paragraphs below
        builder.getParagraphFormat().setOutlineLevel(com.aspose.words.OutlineLevel.LEVEL_2);
        builder.writeln("Paragraph outline level 2.");
        
        // Two paragraphs of the same level will not collapse each other
        builder.getParagraphFormat().setOutlineLevel(com.aspose.words.OutlineLevel.LEVEL_3);
        builder.writeln("Paragraph outline level 3.");
        builder.writeln("Paragraph outline level 3.");
        
        // The default "BodyText" value is the lowest
        builder.getParagraphFormat().setOutlineLevel(com.aspose.words.OutlineLevel.BODY_TEXT);
        builder.writeln("Paragraph at main text level.");
        
        doc.save(getArtifactsDir() + "Paragraph.OutlineLevel.docx");
      • getPageBreakBefore/setPageBreakBefore

        public boolean getPageBreakBefore() / public void setPageBreakBefore(boolean value)
        
        True if a page break is forced before the paragraph.

        Example:

        Shows how to force a page break before each paragraph.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set this to insert a page break before this paragraph
        builder.getParagraphFormat().setPageBreakBefore(true);
        
        // The value we set is propagated to all paragraphs that are created afterwards
        builder.writeln("Paragraph 1, page 1.");
        builder.writeln("Paragraph 2, page 2.");
        
        doc.save(getArtifactsDir() + "Paragraph.PageBreakBefore.docx");
      • getRightIndent/setRightIndent

        public double getRightIndent() / public void setRightIndent(double value)
        
        Gets or sets the value (in points) that represents the right indent for paragraph.

        Example:

        Shows how to set paragraph formatting.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set paragraph formatting properties
        ParagraphFormat paragraphFormat = builder.getParagraphFormat();
        paragraphFormat.setAlignment(ParagraphAlignment.CENTER);
        paragraphFormat.setLeftIndent(50);
        paragraphFormat.setRightIndent(50);
        paragraphFormat.setSpaceAfter(25);
        
        // Output text
        builder.writeln("I'm a very nice formatted paragraph. I'm intended to demonstrate how the left and right indents affect word wrapping.");
        builder.writeln("I'm another nice formatted paragraph. I'm intended to demonstrate how the space after paragraph looks like.");
      • getShading

        public Shading getShading()
        
        Returns a Shading object that refers to the shading formatting for the paragraph.

        Example:

        Shows how to apply borders and shading to a paragraph.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set paragraph borders
        BorderCollection borders = builder.getParagraphFormat().getBorders();
        borders.setDistanceFromText(20);
        borders.getByBorderType(BorderType.LEFT).setLineStyle(LineStyle.DOUBLE);
        borders.getByBorderType(BorderType.RIGHT).setLineStyle(LineStyle.DOUBLE);
        borders.getByBorderType(BorderType.TOP).setLineStyle(LineStyle.DOUBLE);
        borders.getByBorderType(BorderType.BOTTOM).setLineStyle(LineStyle.DOUBLE);
        
        // Set paragraph shading
        Shading shading = builder.getParagraphFormat().getShading();
        shading.setTexture(TextureIndex.TEXTURE_DIAGONAL_CROSS);
        shading.setBackgroundPatternColor(new Color(240, 128, 128));  // Light Coral
        shading.setForegroundPatternColor(new Color(255, 160, 122));  // Light Salmon
        
        builder.write("I'm a formatted paragraph with double border and nice shading.");
      • getSpaceAfter/setSpaceAfter

        public double getSpaceAfter() / public void setSpaceAfter(double value)
        
        Gets or sets the amount of spacing (in points) after the paragraph.

        Has no effect when SpaceAfterAuto is true.

        Example:

        Shows how to work with paragraph spacing.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set the amount of white space before and after each paragraph to 12 points
        builder.getParagraphFormat().setSpaceBefore(12.0f);
        builder.getParagraphFormat().setSpaceAfter(12.0f);
        
        // We can set these flags to apply default spacing, effectively ignoring the spacing in the attributes we set above
        Assert.assertFalse(builder.getParagraphFormat().getSpaceAfterAuto());
        Assert.assertFalse(builder.getParagraphFormat().getSpaceBeforeAuto());
        Assert.assertFalse(builder.getParagraphFormat().getNoSpaceBetweenParagraphsOfSameStyle());
        
        // Insert two paragraphs which will have padding above and below them and save the document
        builder.writeln("Paragraph 1.");
        builder.writeln("Paragraph 2.");
        
        doc.save(getArtifactsDir() + "Paragraph.ParagraphSpacing.docx");
      • getSpaceAfterAuto/setSpaceAfterAuto

        public boolean getSpaceAfterAuto() / public void setSpaceAfterAuto(boolean value)
        
        True if the amount of spacing after the paragraph is set automatically.

        When set to true, overrides the effect of SpaceAfter.

        When you set paragraph Space Before and Space After to Auto, Microsoft Word adds 14 points spacing between paragraphs automatically according to the following rules:

        • Normally, spacing is added after all paragraphs.
        • In a bulleted or numbered list, spacing is added only after the last item in the list. Spacing is not added between the list items.
        • In a nested bulleted or numbered list spacing is not added.
        • Spacing is normally added after a table.
        • Spacing is not added after a table if it is the last block in a table cell.
        • Spacing is not added after the last paragraph in a table cell.

        Example:

        Shows how to work with paragraph spacing.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set the amount of white space before and after each paragraph to 12 points
        builder.getParagraphFormat().setSpaceBefore(12.0f);
        builder.getParagraphFormat().setSpaceAfter(12.0f);
        
        // We can set these flags to apply default spacing, effectively ignoring the spacing in the attributes we set above
        Assert.assertFalse(builder.getParagraphFormat().getSpaceAfterAuto());
        Assert.assertFalse(builder.getParagraphFormat().getSpaceBeforeAuto());
        Assert.assertFalse(builder.getParagraphFormat().getNoSpaceBetweenParagraphsOfSameStyle());
        
        // Insert two paragraphs which will have padding above and below them and save the document
        builder.writeln("Paragraph 1.");
        builder.writeln("Paragraph 2.");
        
        doc.save(getArtifactsDir() + "Paragraph.ParagraphSpacing.docx");
      • getSpaceBefore/setSpaceBefore

        public double getSpaceBefore() / public void setSpaceBefore(double value)
        
        Gets or sets the amount of spacing (in points) before the paragraph.

        Has no effect when SpaceBeforeAuto is true.

        Example:

        Shows how to work with paragraph spacing.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set the amount of white space before and after each paragraph to 12 points
        builder.getParagraphFormat().setSpaceBefore(12.0f);
        builder.getParagraphFormat().setSpaceAfter(12.0f);
        
        // We can set these flags to apply default spacing, effectively ignoring the spacing in the attributes we set above
        Assert.assertFalse(builder.getParagraphFormat().getSpaceAfterAuto());
        Assert.assertFalse(builder.getParagraphFormat().getSpaceBeforeAuto());
        Assert.assertFalse(builder.getParagraphFormat().getNoSpaceBetweenParagraphsOfSameStyle());
        
        // Insert two paragraphs which will have padding above and below them and save the document
        builder.writeln("Paragraph 1.");
        builder.writeln("Paragraph 2.");
        
        doc.save(getArtifactsDir() + "Paragraph.ParagraphSpacing.docx");
      • getSpaceBeforeAuto/setSpaceBeforeAuto

        public boolean getSpaceBeforeAuto() / public void setSpaceBeforeAuto(boolean value)
        
        True if the amount of spacing before the paragraph is set automatically.

        When set to true, overrides the effect of SpaceBefore.

        When you set paragraph Space Before and Space After to Auto, Microsoft Word adds 14 points spacing between paragraphs automatically according to the following rules:

        • Normally, spacing is added after all paragraphs.
        • In a bulleted or numbered list, spacing is added only after the last item in the list. Spacing is not added between the list items.
        • In a nested bulleted or numbered list spacing is not added.
        • Spacing is normally added after a table.
        • Spacing is not added after a table if it is the last block in a table cell.
        • Spacing is not added after the last paragraph in a table cell.

        Example:

        Shows how to work with paragraph spacing.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set the amount of white space before and after each paragraph to 12 points
        builder.getParagraphFormat().setSpaceBefore(12.0f);
        builder.getParagraphFormat().setSpaceAfter(12.0f);
        
        // We can set these flags to apply default spacing, effectively ignoring the spacing in the attributes we set above
        Assert.assertFalse(builder.getParagraphFormat().getSpaceAfterAuto());
        Assert.assertFalse(builder.getParagraphFormat().getSpaceBeforeAuto());
        Assert.assertFalse(builder.getParagraphFormat().getNoSpaceBetweenParagraphsOfSameStyle());
        
        // Insert two paragraphs which will have padding above and below them and save the document
        builder.writeln("Paragraph 1.");
        builder.writeln("Paragraph 2.");
        
        doc.save(getArtifactsDir() + "Paragraph.ParagraphSpacing.docx");
      • getStyle/setStyle

        public Style getStyle() / public void setStyle(Style value)
        
        Gets or sets the paragraph style applied to this formatting.

        Example:

        Shows how to create and use a paragraph style with list formatting.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Create a paragraph style and specify some formatting for it.
        Style style = doc.getStyles().add(StyleType.PARAGRAPH, "MyStyle1");
        style.getFont().setSize(24);
        style.getFont().setName("Verdana");
        style.getParagraphFormat().setSpaceAfter(12);
        
        // Create a list and make sure the paragraphs that use this style will use this list.
        style.getListFormat().setList(doc.getLists().add(ListTemplate.BULLET_DEFAULT));
        style.getListFormat().setListLevelNumber(0);
        
        // Apply the paragraph style to the current paragraph in the document and add some text.
        builder.getParagraphFormat().setStyle(style);
        builder.writeln("Hello World: MyStyle1, bulleted.");
        
        // Change to a paragraph style that has no list formatting.
        builder.getParagraphFormat().setStyle(doc.getStyles().get("Normal"));
        builder.writeln("Hello World: Normal.");
        
        builder.getDocument().save(getArtifactsDir() + "Lists.ParagraphStyleBulleted.doc");
      • getStyleIdentifier/setStyleIdentifier

        public int getStyleIdentifier() / public void setStyleIdentifier(int value)
        
        Gets or sets the locale independent style identifier of the paragraph style applied to this formatting. The value of the property is StyleIdentifier integer constant.

        Example:

        Demonstrates how to insert a Table of contents (TOC) into a document using heading styles as entries.
        // Use a blank document
        Document doc = new Document();
        // Create a document builder to insert content with into document.
        DocumentBuilder builder = new DocumentBuilder(doc);
        // Insert a table of contents at the beginning of the document.
        builder.insertTableOfContents("\\o \"1-3\" \\h \\z \\u");
        // Start the actual document content on the second page.
        builder.insertBreak(BreakType.PAGE_BREAK);
        // Build a document with complex structure by applying different heading styles thus creating TOC entries.
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        
        builder.writeln("Heading 1");
        
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2);
        
        builder.writeln("Heading 1.1");
        builder.writeln("Heading 1.2");
        
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        
        builder.writeln("Heading 2");
        builder.writeln("Heading 3");
        
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2);
        
        builder.writeln("Heading 3.1");
        
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_3);
        
        builder.writeln("Heading 3.1.1");
        builder.writeln("Heading 3.1.2");
        builder.writeln("Heading 3.1.3");
        
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_2);
        
        builder.writeln("Heading 3.2");
        builder.writeln("Heading 3.3");
        
        // Call the method below to update the TOC.
        doc.updateFields();
      • getStyleName/setStyleName

        public java.lang.String getStyleName() / public void setStyleName(java.lang.String value)
        
        Gets or sets the name of the paragraph style applied to this formatting.

        Example:

        Creates a simple document from scratch using the Aspose.Words object model.
        // Create an "empty" document. Note that like in Microsoft Word,
        // the empty document has one section, body and one paragraph in it.
        Document doc = new Document();
        
        // This truly makes the document empty. No sections (not possible in Microsoft Word).
        doc.removeAllChildren();
        
        // Create a new section node.
        // Note that the section has not yet been added to the document,
        // but we have to specify the parent document.
        Section section = new Section(doc);
        
        // Append the section to the document.
        doc.appendChild(section);
        
        // Lets set some properties for the section.
        section.getPageSetup().setSectionStart(SectionStart.NEW_PAGE);
        section.getPageSetup().setPaperSize(PaperSize.LETTER);
        
        // The section that we created is empty, lets populate it. The section needs at least the Body node.
        Body body = new Body(doc);
        section.appendChild(body);
        
        // The body needs to have at least one paragraph.
        // Note that the paragraph has not yet been added to the document,
        // but we have to specify the parent document.
        // The parent document is needed so the paragraph can correctly work
        // with styles and other document-wide information.
        Paragraph para = new Paragraph(doc);
        body.appendChild(para);
        
        // We can set some formatting for the paragraph
        para.getParagraphFormat().setStyleName("Heading 1");
        para.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);
        
        // So far we have one empty paragraph in the document.
        // The document is valid and can be saved, but lets add some text before saving.
        // Create a new run of text and add it to our paragraph.
        Run run = new Run(doc);
        run.setText("Hello World!");
        run.getFont().setColor(Color.RED);
        para.appendChild(run);
        
        // As a matter of interest, you can retrieve text of the whole document and
        // see that \x000c is automatically appended. \x000c is the end of section character.
        System.out.println(doc.getText());
        
        // Save the document.
        doc.save(getArtifactsDir() + "Section.CreateFromScratch.doc");
      • getSuppressAutoHyphens/setSuppressAutoHyphens

        public boolean getSuppressAutoHyphens() / public void setSuppressAutoHyphens(boolean value)
        
        Specifies whether the current paragraph should be exempted from any hyphenation which is applied in the document settings.

        Example:

        Shows how to configure document hyphenation options.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Set this to insert a page break before this paragraph
        builder.getFont().setSize(24.0);
        builder.getParagraphFormat().setSuppressAutoHyphens(false);
        
        builder.writeln("Lorem ipsum dolor sit amet, consectetur adipiscing elit, " +
                "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
        
        doc.getHyphenationOptions().setAutoHyphenation(true);
        doc.getHyphenationOptions().setConsecutiveHyphenLimit(2);
        doc.getHyphenationOptions().setHyphenationZone(720); // 0.5 inch
        doc.getHyphenationOptions().setHyphenateCaps(true);
        
        // Each paragraph has this flag that can be set to suppress hyphenation
        Assert.assertFalse(builder.getParagraphFormat().getSuppressAutoHyphens());
        
        doc.save(getArtifactsDir() + "Document.HyphenationOptions.docx");
      • getSuppressLineNumbers/setSuppressLineNumbers

        public boolean getSuppressLineNumbers() / public void setSuppressLineNumbers(boolean value)
        
        Specifies whether the current paragraph's lines should be exempted from line numbering which is applied in the parent section.

        Example:

        Turns on Microsoft Word line numbering for a section.
        DocumentBuilder builder = new DocumentBuilder();
        
        PageSetup ps = builder.getPageSetup();
        ps.setLineStartingNumber(1);
        ps.setLineNumberCountBy(5);
        ps.setLineNumberRestartMode(LineNumberRestartMode.RESTART_PAGE);
        ps.setLineNumberDistanceFromText(50.0d);
        
        // The line counter will skip any paragraph with this flag set to true
        Assert.assertFalse(builder.getParagraphFormat().getSuppressLineNumbers());
        
        for (int i = 1; i <= 20; i++) {
            builder.writeln(java.text.MessageFormat.format("Line {0}.", i));
        }
        
        builder.getDocument().save(getArtifactsDir() + "PageSetup.LineNumbers.docx");
      • getTabStops

        public TabStopCollection getTabStops()
        
        Gets the collection of custom tab stops defined for this object.

        Example:

        Shows how to modify the position of the right tab stop in TOC related paragraphs.
        Document doc = new Document(getMyDir() + "Document.TableOfContents.doc");
        
        // Iterate through all paragraphs in the document
        for (Paragraph para : (Iterable<Paragraph>) doc.getChildNodes(NodeType.PARAGRAPH, true)) {
            // Check if this paragraph is formatted using the TOC result based styles. This is any style between TOC and TOC9.
            if (para.getParagraphFormat().getStyle().getStyleIdentifier() >= StyleIdentifier.TOC_1
                    && para.getParagraphFormat().getStyle().getStyleIdentifier() <= StyleIdentifier.TOC_9) {
                // Get the first tab used in this paragraph, this should be the tab used to align the page numbers.
                TabStop tab = para.getParagraphFormat().getTabStops().get(0);
                // Remove the old tab from the collection.
                para.getParagraphFormat().getTabStops().removeByPosition(tab.getPosition());
                // Insert a new tab using the same properties but at a modified position.
                // We could also change the separators used (dots) by passing a different Leader type
                para.getParagraphFormat().getTabStops().add(tab.getPosition() - 50, tab.getAlignment(), tab.getLeader());
            }
        }
        
        doc.save(getArtifactsDir() + "Document.TableOfContentsTabStops.doc");
      • getWidowControl/setWidowControl

        public boolean getWidowControl() / public void setWidowControl(boolean value)
        
        True if the first and last lines in the paragraph are to remain on the same page as the rest of the paragraph.

        Example:

        Shows how to enable widow/orphan control for a paragraph.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Insert text that will not fit on one page, with one line spilling into page 2
        builder.getFont().setSize(68.0);
        builder.writeln("Lorem ipsum dolor sit amet, consectetur adipiscing elit, " +
                "sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
        
        // This line is referred to as an "Orphan",
        // and a line left behind on the end of the previous page is likewise called a "Widow"
        // These are not ideal for readability, and the alternative to changing size/line spacing/page margins
        // in order to accomodate ill fitting text is this flag, for which the corresponding Microsoft Word option is
        // found in Home > Paragraph > Paragraph Settings (button on the bottom right of the tab)
        // In our document this will add more text to the orphan by putting two lines of text into the second page
        builder.getParagraphFormat().setWidowControl(true);
        
        doc.save(getArtifactsDir() + "Paragraph.WidowControl.docx");
      • getWordWrap/setWordWrap

        public boolean getWordWrap() / public void setWordWrap(boolean value)
        
        If this property is false, Latin text in the middle of a word can be wrapped for the current paragraph. Otherwise Latin text is wrapped by whole words.

        Example:

        Shows how to set special properties for Asian typography.
        Document doc = new Document(getMyDir() + "Document.docx");
        
        ParagraphFormat format = doc.getFirstSection().getBody().getParagraphs().get(0).getParagraphFormat();
        format.setFarEastLineBreakControl(true);
        format.setWordWrap(false);
        format.setHangingPunctuation(true);
        
        doc.save(getArtifactsDir() + "Paragraph.AsianTypographyProperties.docx");
    • Method Detail

      • clearFormatting

        public void clearFormatting()
        Resets to default paragraph formatting. Default paragraph formatting is Normal style, left aligned, no indentation, no spacing, no borders and no shading.

        Example:

        Shows how to start a numbered list, add a bulleted list inside it, then return to the numbered list.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Create an outline list for the headings.
        List outlineList = doc.getLists().add(ListTemplate.OUTLINE_NUMBERS);
        builder.getListFormat().setList(outlineList);
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        builder.writeln("This is my Chapter 1");
        
        // Create a numbered list.
        List numberedList = doc.getLists().add(ListTemplate.NUMBER_DEFAULT);
        builder.getListFormat().setList(numberedList);
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.NORMAL);
        builder.writeln("Numbered list item 1.");
        
        // Every paragraph that comprises a list will have this flag
        Assert.assertTrue(builder.getCurrentParagraph().isListItem());
        Assert.assertTrue(builder.getParagraphFormat().isListItem());
        
        // Create a bulleted list.
        List bulletedList = doc.getLists().add(ListTemplate.BULLET_DEFAULT);
        builder.getListFormat().setList(bulletedList);
        builder.getParagraphFormat().setLeftIndent(72);
        builder.writeln("Bulleted list item 1.");
        builder.writeln("Bulleted list item 2.");
        builder.getParagraphFormat().clearFormatting();
        
        // Revert to the numbered list.
        builder.getListFormat().setList(numberedList);
        builder.writeln("Numbered list item 2.");
        builder.writeln("Numbered list item 3.");
        
        // Revert to the outline list.
        builder.getListFormat().setList(outlineList);
        builder.getParagraphFormat().setStyleIdentifier(StyleIdentifier.HEADING_1);
        builder.writeln("This is my Chapter 2");
        
        builder.getParagraphFormat().clearFormatting();
        
        builder.getDocument().save(getArtifactsDir() + "Lists.NestedLists.docx");