com.aspose.words

Class TextBox

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

Defines attributes that specify how a text is displayed inside a shape.

Use the Shape.TextBox property to access text properties of a shape. You do not create instances of the TextBox class directly.

Example:

Shows how to set internal margins for a text box.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Insert another textbox with specific margins.
Shape textBoxShape = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
TextBox textBox = textBoxShape.getTextBox();
textBox.setInternalMarginTop(15.0);
textBox.setInternalMarginBottom(15.0);
textBox.setInternalMarginLeft(15.0);
textBox.setInternalMarginRight(15.0);

builder.moveTo(textBoxShape.getLastParagraph());
builder.write("Text placed according to textbox margins.");

doc.save(getArtifactsDir() + "Shape.TextBoxMargins.docx");

Example:

Shows how to set the orientation of text inside a text box.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape textBoxShape = builder.insertShape(ShapeType.TEXT_BOX, 150.0, 100.0);
TextBox textBox = textBoxShape.getTextBox();

// Move the document builder to inside the TextBox and add text.
builder.moveTo(textBoxShape.getLastParagraph());
builder.writeln("Hello world!");
builder.write("Hello again!");

// Set the "LayoutFlow" property to set an orientation for the text contents of this text box.
textBox.setLayoutFlow(layoutFlow);

doc.save(getArtifactsDir() + "Shape.TextBoxLayoutFlow.docx");

Example:

Shows how to get a text box to resize itself to fit its contents tightly.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape textBoxShape = builder.insertShape(ShapeType.TEXT_BOX, 150.0, 100.0);
TextBox textBox = textBoxShape.getTextBox();

// Apply these values to both these members to get the parent shape to fit
// tightly around the text contents, ignoring the dimensions we have set.
textBox.setFitShapeToText(true);
textBox.setTextBoxWrapMode(TextBoxWrapMode.NONE);

builder.moveTo(textBoxShape.getLastParagraph());
builder.write("Text fit tightly inside textbox.");

doc.save(getArtifactsDir() + "Shape.TextBoxFitShapeToText.docx");
See Also:
Shape.TextBox

Property Getters/Setters Summary
booleangetFitShapeToText()
void
setFitShapeToText(booleanvalue)
           Determines whether Microsoft Word will grow the shape to fit text.
doublegetInternalMarginBottom()
void
           Specifies the inner bottom margin in points for a shape.
doublegetInternalMarginLeft()
void
           Specifies the inner left margin in points for a shape.
doublegetInternalMarginRight()
void
           Specifies the inner right margin in points for a shape.
doublegetInternalMarginTop()
void
           Specifies the inner top margin in points for a shape.
intgetLayoutFlow()
void
setLayoutFlow(intvalue)
           Determines the flow of the text layout in a shape. The value of the property is LayoutFlow integer constant.
TextBoxgetNext()
void
           Returns or sets a TextBox that represents the next TextBox in a sequence of shapes.
ShapegetParent()
Gets a parent shape for the TextBox.
TextBoxgetPrevious()
Returns a TextBox that represents the previous TextBox in a sequence of shapes.
intgetTextBoxWrapMode()
void
           Determines how text wraps inside a shape. The value of the property is TextBoxWrapMode integer constant.
intgetVerticalAnchor()
void
           Specifies the vertical alignment of the text within a shape. The value of the property is TextBoxAnchor integer constant.
 
Method Summary
voidbreakForwardLink()
Breaks the link to the next TextBox.
booleanisValidLinkTarget(TextBox target)
Determines whether this TextBox can be linked to the target Textbox.
 

    • Property Getters/Setters Detail

      • getFitShapeToText/setFitShapeToText

        public boolean getFitShapeToText() / public void setFitShapeToText(boolean value)
        
        Determines whether Microsoft Word will grow the shape to fit text.

        The default value is false.

        Example:

        Shows how to get a text box to resize itself to fit its contents tightly.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        Shape textBoxShape = builder.insertShape(ShapeType.TEXT_BOX, 150.0, 100.0);
        TextBox textBox = textBoxShape.getTextBox();
        
        // Apply these values to both these members to get the parent shape to fit
        // tightly around the text contents, ignoring the dimensions we have set.
        textBox.setFitShapeToText(true);
        textBox.setTextBoxWrapMode(TextBoxWrapMode.NONE);
        
        builder.moveTo(textBoxShape.getLastParagraph());
        builder.write("Text fit tightly inside textbox.");
        
        doc.save(getArtifactsDir() + "Shape.TextBoxFitShapeToText.docx");
      • getInternalMarginBottom/setInternalMarginBottom

        public double getInternalMarginBottom() / public void setInternalMarginBottom(double value)
        
        Specifies the inner bottom margin in points for a shape.

        The default value is 1/20 inch.

        Example:

        Shows how to set internal margins for a text box.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Insert another textbox with specific margins.
        Shape textBoxShape = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox = textBoxShape.getTextBox();
        textBox.setInternalMarginTop(15.0);
        textBox.setInternalMarginBottom(15.0);
        textBox.setInternalMarginLeft(15.0);
        textBox.setInternalMarginRight(15.0);
        
        builder.moveTo(textBoxShape.getLastParagraph());
        builder.write("Text placed according to textbox margins.");
        
        doc.save(getArtifactsDir() + "Shape.TextBoxMargins.docx");
      • getInternalMarginLeft/setInternalMarginLeft

        public double getInternalMarginLeft() / public void setInternalMarginLeft(double value)
        
        Specifies the inner left margin in points for a shape.

        The default value is 1/10 inch.

        Example:

        Shows how to set internal margins for a text box.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Insert another textbox with specific margins.
        Shape textBoxShape = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox = textBoxShape.getTextBox();
        textBox.setInternalMarginTop(15.0);
        textBox.setInternalMarginBottom(15.0);
        textBox.setInternalMarginLeft(15.0);
        textBox.setInternalMarginRight(15.0);
        
        builder.moveTo(textBoxShape.getLastParagraph());
        builder.write("Text placed according to textbox margins.");
        
        doc.save(getArtifactsDir() + "Shape.TextBoxMargins.docx");
      • getInternalMarginRight/setInternalMarginRight

        public double getInternalMarginRight() / public void setInternalMarginRight(double value)
        
        Specifies the inner right margin in points for a shape.

        The default value is 1/10 inch.

        Example:

        Shows how to set internal margins for a text box.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Insert another textbox with specific margins.
        Shape textBoxShape = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox = textBoxShape.getTextBox();
        textBox.setInternalMarginTop(15.0);
        textBox.setInternalMarginBottom(15.0);
        textBox.setInternalMarginLeft(15.0);
        textBox.setInternalMarginRight(15.0);
        
        builder.moveTo(textBoxShape.getLastParagraph());
        builder.write("Text placed according to textbox margins.");
        
        doc.save(getArtifactsDir() + "Shape.TextBoxMargins.docx");
      • getInternalMarginTop/setInternalMarginTop

        public double getInternalMarginTop() / public void setInternalMarginTop(double value)
        
        Specifies the inner top margin in points for a shape.

        The default value is 1/20 inch.

        Example:

        Shows how to set internal margins for a text box.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        // Insert another textbox with specific margins.
        Shape textBoxShape = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox = textBoxShape.getTextBox();
        textBox.setInternalMarginTop(15.0);
        textBox.setInternalMarginBottom(15.0);
        textBox.setInternalMarginLeft(15.0);
        textBox.setInternalMarginRight(15.0);
        
        builder.moveTo(textBoxShape.getLastParagraph());
        builder.write("Text placed according to textbox margins.");
        
        doc.save(getArtifactsDir() + "Shape.TextBoxMargins.docx");
      • getLayoutFlow/setLayoutFlow

        public int getLayoutFlow() / public void setLayoutFlow(int value)
        
        Determines the flow of the text layout in a shape. The value of the property is LayoutFlow integer constant.

        The default value is LayoutFlow.HORIZONTAL.

        Example:

        Shows how to set the orientation of text inside a text box.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        Shape textBoxShape = builder.insertShape(ShapeType.TEXT_BOX, 150.0, 100.0);
        TextBox textBox = textBoxShape.getTextBox();
        
        // Move the document builder to inside the TextBox and add text.
        builder.moveTo(textBoxShape.getLastParagraph());
        builder.writeln("Hello world!");
        builder.write("Hello again!");
        
        // Set the "LayoutFlow" property to set an orientation for the text contents of this text box.
        textBox.setLayoutFlow(layoutFlow);
        
        doc.save(getArtifactsDir() + "Shape.TextBoxLayoutFlow.docx");
      • getNext/setNext

        public TextBox getNext() / public void setNext(TextBox value)
        
        Returns or sets a TextBox that represents the next TextBox in a sequence of shapes.

        Example:

        Shows how to link text boxes.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        Shape textBoxShape1 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox1 = textBoxShape1.getTextBox();
        builder.writeln();
        
        Shape textBoxShape2 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox2 = textBoxShape2.getTextBox();
        builder.writeln();
        
        Shape textBoxShape3 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox3 = textBoxShape3.getTextBox();
        builder.writeln();
        
        Shape textBoxShape4 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox4 = textBoxShape4.getTextBox();
        
        // Create links between some of the text boxes.
        if (textBox1.isValidLinkTarget(textBox2))
            textBox1.setNext(textBox2);
        
        if (textBox2.isValidLinkTarget(textBox3))
            textBox2.setNext(textBox3);
        
        // Only an empty text box may have a link.
        Assert.assertTrue(textBox3.isValidLinkTarget(textBox4));
        
        builder.moveTo(textBoxShape4.getLastParagraph());
        builder.write("Hello world!");
        
        Assert.assertFalse(textBox3.isValidLinkTarget(textBox4));
        
        if (textBox1.getNext() != null && textBox1.getPrevious() == null)
            System.out.println("This TextBox is the head of the sequence");
        
        if (textBox2.getNext() != null && textBox2.getPrevious() != null)
            System.out.println("This TextBox is the middle of the sequence");
        
        if (textBox3.getNext() == null && textBox3.getPrevious() != null) {
            System.out.println("This TextBox is the tail of the sequence");
        
            // Break the forward link between textBox2 and textBox3, and then verify that they are no longer linked.
            textBox3.getPrevious().breakForwardLink();
        
            Assert.assertTrue(textBox2.getNext() == null);
            Assert.assertTrue(textBox3.getPrevious() == null);
        }
        
        doc.save(getArtifactsDir() + "Shape.CreateLinkBetweenTextBoxes.docx");
      • getParent

        public Shape getParent()
        
        Gets a parent shape for the TextBox.
      • getPrevious

        public TextBox getPrevious()
        
        Returns a TextBox that represents the previous TextBox in a sequence of shapes.

        Example:

        Shows how to link text boxes.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        Shape textBoxShape1 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox1 = textBoxShape1.getTextBox();
        builder.writeln();
        
        Shape textBoxShape2 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox2 = textBoxShape2.getTextBox();
        builder.writeln();
        
        Shape textBoxShape3 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox3 = textBoxShape3.getTextBox();
        builder.writeln();
        
        Shape textBoxShape4 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox4 = textBoxShape4.getTextBox();
        
        // Create links between some of the text boxes.
        if (textBox1.isValidLinkTarget(textBox2))
            textBox1.setNext(textBox2);
        
        if (textBox2.isValidLinkTarget(textBox3))
            textBox2.setNext(textBox3);
        
        // Only an empty text box may have a link.
        Assert.assertTrue(textBox3.isValidLinkTarget(textBox4));
        
        builder.moveTo(textBoxShape4.getLastParagraph());
        builder.write("Hello world!");
        
        Assert.assertFalse(textBox3.isValidLinkTarget(textBox4));
        
        if (textBox1.getNext() != null && textBox1.getPrevious() == null)
            System.out.println("This TextBox is the head of the sequence");
        
        if (textBox2.getNext() != null && textBox2.getPrevious() != null)
            System.out.println("This TextBox is the middle of the sequence");
        
        if (textBox3.getNext() == null && textBox3.getPrevious() != null) {
            System.out.println("This TextBox is the tail of the sequence");
        
            // Break the forward link between textBox2 and textBox3, and then verify that they are no longer linked.
            textBox3.getPrevious().breakForwardLink();
        
            Assert.assertTrue(textBox2.getNext() == null);
            Assert.assertTrue(textBox3.getPrevious() == null);
        }
        
        doc.save(getArtifactsDir() + "Shape.CreateLinkBetweenTextBoxes.docx");
      • getTextBoxWrapMode/setTextBoxWrapMode

        public int getTextBoxWrapMode() / public void setTextBoxWrapMode(int value)
        
        Determines how text wraps inside a shape. The value of the property is TextBoxWrapMode integer constant.

        The default value is TextBoxWrapMode.SQUARE.

        Example:

        Shows how to set a wrapping mode for the contents of a text box.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        Shape textBoxShape = builder.insertShape(ShapeType.TEXT_BOX, 300.0, 300.0);
        TextBox textBox = textBoxShape.getTextBox();
        
        // Set the "TextBoxWrapMode" property to "TextBoxWrapMode.None" to increase the text box's width
        // to accommodate text, should it be large enough.
        // Set the "TextBoxWrapMode" property to "TextBoxWrapMode.Square" to
        // wrap all text inside the text box, preserving its dimensions.
        textBox.setTextBoxWrapMode(textBoxWrapMode);
        
        builder.moveTo(textBoxShape.getLastParagraph());
        builder.getFont().setSize(32.0);
        builder.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.");
        
        doc.save(getArtifactsDir() + "Shape.TextBoxContentsWrapMode.docx");
      • getVerticalAnchor/setVerticalAnchor

        public int getVerticalAnchor() / public void setVerticalAnchor(int value)
        
        Specifies the vertical alignment of the text within a shape. The value of the property is TextBoxAnchor integer constant.

        The default value is TextBoxAnchor.TOP.

        Example:

        Shows how to vertically align the text contents of a text box.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        Shape shape = builder.insertShape(ShapeType.TEXT_BOX, 200.0, 200.0);
        
        // Set the "VerticalAnchor" property to "TextBoxAnchor.Top" to
        // align the text in this text box with the top side of the shape.
        // Set the "VerticalAnchor" property to "TextBoxAnchor.Middle" to
        // align the text in this text box to the center of the shape.
        // Set the "VerticalAnchor" property to "TextBoxAnchor.Bottom" to
        // align the text in this text box to the bottom of the shape.
        shape.getTextBox().setVerticalAnchor(verticalAnchor);
        
        builder.moveTo(shape.getFirstParagraph());
        builder.write("Hello world!");
        
        // The vertical aligning of text inside text boxes is available from Microsoft Word 2007 onwards.
        doc.getCompatibilityOptions().optimizeFor(MsWordVersion.WORD_2007);
        doc.save(getArtifactsDir() + "Shape.VerticalAnchor.docx");
    • Method Detail

      • breakForwardLink

        public void breakForwardLink()
        Breaks the link to the next TextBox. BreakForwardLink() doesn't break all other links in the current sequence of shapes. For example: 1-2-3-4 sequence and BreakForwardLink at the 2-nd textbox will create two sequences 1-2, 3-4.

        Example:

        Shows how to link text boxes.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        Shape textBoxShape1 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox1 = textBoxShape1.getTextBox();
        builder.writeln();
        
        Shape textBoxShape2 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox2 = textBoxShape2.getTextBox();
        builder.writeln();
        
        Shape textBoxShape3 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox3 = textBoxShape3.getTextBox();
        builder.writeln();
        
        Shape textBoxShape4 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox4 = textBoxShape4.getTextBox();
        
        // Create links between some of the text boxes.
        if (textBox1.isValidLinkTarget(textBox2))
            textBox1.setNext(textBox2);
        
        if (textBox2.isValidLinkTarget(textBox3))
            textBox2.setNext(textBox3);
        
        // Only an empty text box may have a link.
        Assert.assertTrue(textBox3.isValidLinkTarget(textBox4));
        
        builder.moveTo(textBoxShape4.getLastParagraph());
        builder.write("Hello world!");
        
        Assert.assertFalse(textBox3.isValidLinkTarget(textBox4));
        
        if (textBox1.getNext() != null && textBox1.getPrevious() == null)
            System.out.println("This TextBox is the head of the sequence");
        
        if (textBox2.getNext() != null && textBox2.getPrevious() != null)
            System.out.println("This TextBox is the middle of the sequence");
        
        if (textBox3.getNext() == null && textBox3.getPrevious() != null) {
            System.out.println("This TextBox is the tail of the sequence");
        
            // Break the forward link between textBox2 and textBox3, and then verify that they are no longer linked.
            textBox3.getPrevious().breakForwardLink();
        
            Assert.assertTrue(textBox2.getNext() == null);
            Assert.assertTrue(textBox3.getPrevious() == null);
        }
        
        doc.save(getArtifactsDir() + "Shape.CreateLinkBetweenTextBoxes.docx");
      • isValidLinkTarget

        public boolean isValidLinkTarget(TextBox target)
        Determines whether this TextBox can be linked to the target Textbox.

        Example:

        Shows how to link text boxes.
        Document doc = new Document();
        DocumentBuilder builder = new DocumentBuilder(doc);
        
        Shape textBoxShape1 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox1 = textBoxShape1.getTextBox();
        builder.writeln();
        
        Shape textBoxShape2 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox2 = textBoxShape2.getTextBox();
        builder.writeln();
        
        Shape textBoxShape3 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox3 = textBoxShape3.getTextBox();
        builder.writeln();
        
        Shape textBoxShape4 = builder.insertShape(ShapeType.TEXT_BOX, 100.0, 100.0);
        TextBox textBox4 = textBoxShape4.getTextBox();
        
        // Create links between some of the text boxes.
        if (textBox1.isValidLinkTarget(textBox2))
            textBox1.setNext(textBox2);
        
        if (textBox2.isValidLinkTarget(textBox3))
            textBox2.setNext(textBox3);
        
        // Only an empty text box may have a link.
        Assert.assertTrue(textBox3.isValidLinkTarget(textBox4));
        
        builder.moveTo(textBoxShape4.getLastParagraph());
        builder.write("Hello world!");
        
        Assert.assertFalse(textBox3.isValidLinkTarget(textBox4));
        
        if (textBox1.getNext() != null && textBox1.getPrevious() == null)
            System.out.println("This TextBox is the head of the sequence");
        
        if (textBox2.getNext() != null && textBox2.getPrevious() != null)
            System.out.println("This TextBox is the middle of the sequence");
        
        if (textBox3.getNext() == null && textBox3.getPrevious() != null) {
            System.out.println("This TextBox is the tail of the sequence");
        
            // Break the forward link between textBox2 and textBox3, and then verify that they are no longer linked.
            textBox3.getPrevious().breakForwardLink();
        
            Assert.assertTrue(textBox2.getNext() == null);
            Assert.assertTrue(textBox3.getPrevious() == null);
        }
        
        doc.save(getArtifactsDir() + "Shape.CreateLinkBetweenTextBoxes.docx");