TextBox
Inheritance: java.lang.Object
public class TextBox
Defines attributes that specify how a text is displayed inside a shape.
To learn more, visit the Working with Shapes documentation article.
Remarks:
Use the Shape.getTextBox() property to access text properties of a shape. You do not create instances of the TextBox class directly.
Examples:
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");
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");
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");
Methods
Method | Description |
---|---|
breakForwardLink() | Breaks the link to the next TextBox. |
getFitShapeToText() | Determines whether Microsoft Word will grow the shape to fit text. |
getInternalMarginBottom() | Specifies the inner bottom margin in points for a shape. |
getInternalMarginLeft() | Specifies the inner left margin in points for a shape. |
getInternalMarginRight() | Specifies the inner right margin in points for a shape. |
getInternalMarginTop() | Specifies the inner top margin in points for a shape. |
getLayoutFlow() | Determines the flow of the text layout in a shape. |
getNext() | Gets a TextBox that represents the next TextBox in a sequence of shapes. |
getNoTextRotation() | Gets a boolean value indicating either text of the TextBox should not rotate when the shape is rotated. |
getParent() | Gets a parent shape for the TextBox. |
getPrevious() | Returns a TextBox that represents the previous TextBox in a sequence of shapes. |
getTextBoxWrapMode() | Determines how text wraps inside a shape. |
getVerticalAnchor() | Specifies the vertical alignment of the text within a shape. |
isValidLinkTarget(TextBox target) | Determines whether this TextBox can be linked to the target TextBox. |
setFitShapeToText(boolean value) | Determines whether Microsoft Word will grow the shape to fit text. |
setInternalMarginBottom(double value) | Specifies the inner bottom margin in points for a shape. |
setInternalMarginLeft(double value) | Specifies the inner left margin in points for a shape. |
setInternalMarginRight(double value) | Specifies the inner right margin in points for a shape. |
setInternalMarginTop(double value) | Specifies the inner top margin in points for a shape. |
setLayoutFlow(int value) | Determines the flow of the text layout in a shape. |
setNext(TextBox value) | Sets a TextBox that represents the next TextBox in a sequence of shapes. |
setNoTextRotation(boolean value) | Sets a boolean value indicating either text of the TextBox should not rotate when the shape is rotated. |
setTextBoxWrapMode(int value) | Determines how text wraps inside a shape. |
setVerticalAnchor(int value) | Specifies the vertical alignment of the text within a shape. |
breakForwardLink()
public void breakForwardLink()
Breaks the link to the next TextBox.
Remarks:
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.
Examples:
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");
getFitShapeToText()
public boolean getFitShapeToText()
Determines whether Microsoft Word will grow the shape to fit text.
Remarks:
The default value is false .
Examples:
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");
Returns: boolean - The corresponding boolean value.
getInternalMarginBottom()
public double getInternalMarginBottom()
Specifies the inner bottom margin in points for a shape.
Remarks:
The default value is 1/20 inch.
Examples:
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");
Returns: double - The corresponding double value.
getInternalMarginLeft()
public double getInternalMarginLeft()
Specifies the inner left margin in points for a shape.
Remarks:
The default value is 1/10 inch.
Examples:
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");
Returns: double - The corresponding double value.
getInternalMarginRight()
public double getInternalMarginRight()
Specifies the inner right margin in points for a shape.
Remarks:
The default value is 1/10 inch.
Examples:
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");
Returns: double - The corresponding double value.
getInternalMarginTop()
public double getInternalMarginTop()
Specifies the inner top margin in points for a shape.
Remarks:
The default value is 1/20 inch.
Examples:
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");
Returns: double - The corresponding double value.
getLayoutFlow()
public int getLayoutFlow()
Determines the flow of the text layout in a shape.
Remarks:
The default value is LayoutFlow.HORIZONTAL.
Examples:
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");
Returns: int - The corresponding int value. The returned value is one of LayoutFlow constants.
getNext()
public TextBox getNext()
Gets a TextBox that represents the next TextBox in a sequence of shapes.
Examples:
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");
Returns: TextBox - A TextBox that represents the next TextBox in a sequence of shapes.
getNoTextRotation()
public boolean getNoTextRotation()
Gets a boolean value indicating either text of the TextBox should not rotate when the shape is rotated.
Remarks:
The default value is false
Examples:
Shows how to disable text rotation when the shape is rotate.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.ELLIPSE, 20.0, 20.0);
shape.getTextBox().setNoTextRotation(true);
doc.save(getArtifactsDir() + "Shape.NoTextRotation.docx");
Returns: boolean - A boolean value indicating either text of the TextBox should not rotate when the shape is rotated.
getParent()
public Shape getParent()
Gets a parent shape for the TextBox.
Returns: Shape - A parent shape for the TextBox.
getPrevious()
public TextBox getPrevious()
Returns a TextBox that represents the previous TextBox in a sequence of shapes.
Examples:
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");
Returns: TextBox - A TextBox that represents the previous TextBox in a sequence of shapes.
getTextBoxWrapMode()
public int getTextBoxWrapMode()
Determines how text wraps inside a shape.
Remarks:
The default value is TextBoxWrapMode.SQUARE.
Examples:
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");
Returns: int - The corresponding int value. The returned value is one of TextBoxWrapMode constants.
getVerticalAnchor()
public int getVerticalAnchor()
Specifies the vertical alignment of the text within a shape.
Remarks:
The default value is TextBoxAnchor.TOP.
Examples:
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");
Returns: int - The corresponding int value. The returned value is one of TextBoxAnchor constants.
isValidLinkTarget(TextBox target)
public boolean isValidLinkTarget(TextBox target)
Determines whether this TextBox can be linked to the target TextBox.
Examples:
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");
Parameters:
Parameter | Type | Description |
---|---|---|
target | TextBox |
Returns: boolean
setFitShapeToText(boolean value)
public void setFitShapeToText(boolean value)
Determines whether Microsoft Word will grow the shape to fit text.
Remarks:
The default value is false .
Examples:
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");
Parameters:
Parameter | Type | Description |
---|---|---|
value | boolean | The corresponding boolean value. |
setInternalMarginBottom(double value)
public void setInternalMarginBottom(double value)
Specifies the inner bottom margin in points for a shape.
Remarks:
The default value is 1/20 inch.
Examples:
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");
Parameters:
Parameter | Type | Description |
---|---|---|
value | double | The corresponding double value. |
setInternalMarginLeft(double value)
public void setInternalMarginLeft(double value)
Specifies the inner left margin in points for a shape.
Remarks:
The default value is 1/10 inch.
Examples:
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");
Parameters:
Parameter | Type | Description |
---|---|---|
value | double | The corresponding double value. |
setInternalMarginRight(double value)
public void setInternalMarginRight(double value)
Specifies the inner right margin in points for a shape.
Remarks:
The default value is 1/10 inch.
Examples:
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");
Parameters:
Parameter | Type | Description |
---|---|---|
value | double | The corresponding double value. |
setInternalMarginTop(double value)
public void setInternalMarginTop(double value)
Specifies the inner top margin in points for a shape.
Remarks:
The default value is 1/20 inch.
Examples:
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");
Parameters:
Parameter | Type | Description |
---|---|---|
value | double | The corresponding double value. |
setLayoutFlow(int value)
public void setLayoutFlow(int value)
Determines the flow of the text layout in a shape.
Remarks:
The default value is LayoutFlow.HORIZONTAL.
Examples:
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");
Parameters:
Parameter | Type | Description |
---|---|---|
value | int | The corresponding int value. The value must be one of LayoutFlow constants. |
setNext(TextBox value)
public void setNext(TextBox value)
Sets a TextBox that represents the next TextBox in a sequence of shapes.
Examples:
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");
Parameters:
Parameter | Type | Description |
---|---|---|
value | TextBox | A TextBox that represents the next TextBox in a sequence of shapes. |
setNoTextRotation(boolean value)
public void setNoTextRotation(boolean value)
Sets a boolean value indicating either text of the TextBox should not rotate when the shape is rotated.
Remarks:
The default value is false
Examples:
Shows how to disable text rotation when the shape is rotate.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.ELLIPSE, 20.0, 20.0);
shape.getTextBox().setNoTextRotation(true);
doc.save(getArtifactsDir() + "Shape.NoTextRotation.docx");
Parameters:
Parameter | Type | Description |
---|---|---|
value | boolean | A boolean value indicating either text of the TextBox should not rotate when the shape is rotated. |
setTextBoxWrapMode(int value)
public void setTextBoxWrapMode(int value)
Determines how text wraps inside a shape.
Remarks:
The default value is TextBoxWrapMode.SQUARE.
Examples:
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");
Parameters:
Parameter | Type | Description |
---|---|---|
value | int | The corresponding int value. The value must be one of TextBoxWrapMode constants. |
setVerticalAnchor(int value)
public void setVerticalAnchor(int value)
Specifies the vertical alignment of the text within a shape.
Remarks:
The default value is TextBoxAnchor.TOP.
Examples:
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");
Parameters:
Parameter | Type | Description |
---|---|---|
value | int | The corresponding int value. The value must be one of TextBoxAnchor constants. |