public class TextBox
extends java.lang.Object
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");
Shape.getTextBox()| Modifier and Type | Method and Description |
|---|---|
void |
breakForwardLink()
Breaks the link to the next
TextBox. |
boolean |
getFitShapeToText()
Determines whether Microsoft Word will grow the shape to fit text.
|
double |
getInternalMarginBottom()
Specifies the inner bottom margin in points for a shape.
|
double |
getInternalMarginLeft()
Specifies the inner left margin in points for a shape.
|
double |
getInternalMarginRight()
Specifies the inner right margin in points for a shape.
|
double |
getInternalMarginTop()
Specifies the inner top margin in points for a shape.
|
int |
getLayoutFlow()
Determines the flow of the text layout in a shape.
|
TextBox |
getNext()
|
boolean |
getNoTextRotation()
Gets a boolean value indicating either text of the TextBox should not rotate when the shape is rotated.
|
Shape |
getParent()
Gets a parent shape for the
TextBox. |
TextBox |
getPrevious()
|
int |
getTextBoxWrapMode()
Determines how text wraps inside a shape.
|
int |
getVerticalAnchor()
Specifies the vertical alignment of the text within a shape.
|
boolean |
isValidLinkTarget(TextBox target)
|
void |
setFitShapeToText(boolean value)
Determines whether Microsoft Word will grow the shape to fit text.
|
void |
setInternalMarginBottom(double value)
Specifies the inner bottom margin in points for a shape.
|
void |
setInternalMarginLeft(double value)
Specifies the inner left margin in points for a shape.
|
void |
setInternalMarginRight(double value)
Specifies the inner right margin in points for a shape.
|
void |
setInternalMarginTop(double value)
Specifies the inner top margin in points for a shape.
|
void |
setLayoutFlow(int value)
Determines the flow of the text layout in a shape.
|
void |
setNext(TextBox value)
|
void |
setNoTextRotation(boolean value)
Sets a boolean value indicating either text of the TextBox should not rotate when the shape is rotated.
|
void |
setTextBoxWrapMode(int value)
Determines how text wraps inside a shape.
|
void |
setVerticalAnchor(int value)
Specifies the vertical alignment of the text within a shape.
|
public double getInternalMarginLeft()
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");
double value.public void setInternalMarginLeft(double value)
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");
value - The corresponding double value.public double getInternalMarginRight()
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");
double value.public void setInternalMarginRight(double value)
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");
value - The corresponding double value.public double getInternalMarginTop()
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");
double value.public void setInternalMarginTop(double value)
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");
value - The corresponding double value.public double getInternalMarginBottom()
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");
double value.public void setInternalMarginBottom(double value)
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");
value - The corresponding double value.public boolean getFitShapeToText()
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");
boolean value.public void setFitShapeToText(boolean value)
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");
value - The corresponding boolean value.public int getLayoutFlow()
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");
int value. The returned value is one of LayoutFlow constants.public void setLayoutFlow(int value)
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");
value - The corresponding int value. The value must be one of LayoutFlow constants.public int getTextBoxWrapMode()
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");
int value. The returned value is one of TextBoxWrapMode constants.public void setTextBoxWrapMode(int value)
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");
value - The corresponding int value. The value must be one of TextBoxWrapMode constants.public boolean getNoTextRotation()
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");
public void setNoTextRotation(boolean value)
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");
value - A boolean value indicating either text of the TextBox should not rotate when the shape is rotated.public int getVerticalAnchor()
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");
int value. The returned value is one of TextBoxAnchor constants.public void setVerticalAnchor(int value)
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");
value - The corresponding int value. The value must be one of TextBoxAnchor constants.public boolean isValidLinkTarget(TextBox target)
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");
public TextBox getNext()
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");
public void setNext(TextBox value)
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");
public TextBox getPrevious()
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");
public void breakForwardLink()
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");