com.aspose.words
Class Border

java.lang.Object
  extended by InternableComplexAttr
      extended by com.aspose.words.Border
All Implemented Interfaces:
java.lang.Cloneable

public class Border 
extends InternableComplexAttr

Represents a border of an object.

Borders can be applied to various document elements including paragraph, run of text inside a paragraph or a table cell.

Example:

Inserts a String surrounded by a border into a document.
DocumentBuilder builder = new DocumentBuilder();

builder.getFont().getBorder().setColor(Color.GREEN);
builder.getFont().getBorder().setLineWidth(2.5);
builder.getFont().getBorder().setLineStyle(LineStyle.DASH_DOT_STROKER);

builder.write("run of text in a green border");

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!");

Property Getters/Setters Summary
java.awt.ColorgetColor()
voidsetColor(java.awt.Color value)
           Gets or sets the border color.
doublegetDistanceFromText()
voidsetDistanceFromText(double value)
           Gets or sets distance of the border from text or from the page edge in points.
booleanisVisible()
           Returns true if the LineStyle is not LineStyle.None.
intgetLineStyle()
voidsetLineStyle(int value)
           Gets or sets the border style. The value of the property is LineStyle integer constant.
doublegetLineWidth()
voidsetLineWidth(double value)
           Gets or sets the border width in points.
booleangetShadow()
voidsetShadow(boolean value)
           Gets or sets a value indicating whether the border has a shadow.
 
Method Summary
voidclearFormatting()
           Resets border properties to default values.
booleanequals(Border rhs)
           Determines whether the specified border is equal in value to the current border.
booleanequals(java.lang.Object obj)
           Determines whether the specified object is equal in value to the current object.
inthashCode()
           Serves as a hash function for this type.
 

Property Getters/Setters Detail

getColor/setColor

public java.awt.Color getColor() / public void setColor(java.awt.Color value)
Gets or sets the border color.

Example:

Inserts a String surrounded by a border into a document.
DocumentBuilder builder = new DocumentBuilder();

builder.getFont().getBorder().setColor(Color.GREEN);
builder.getFont().getBorder().setLineWidth(2.5);
builder.getFont().getBorder().setLineStyle(LineStyle.DASH_DOT_STROKER);

builder.write("run of text in a green border");

getDistanceFromText/setDistanceFromText

public double getDistanceFromText() / public void setDistanceFromText(double value)
Gets or sets distance of the border from text or from the page edge in points. Has no effect and will be automatically reset to zero for borders of table cells.

Example:

Creates a page border that looks like a wide blue band at the top of the first page only.
Document doc = new Document();

PageSetup ps = doc.getSections().get(0).getPageSetup();
ps.setBorderAlwaysInFront(false);
ps.setBorderDistanceFrom(PageBorderDistanceFrom.PAGE_EDGE);
ps.setBorderAppliesTo(PageBorderAppliesTo.FIRST_PAGE);

Border border = ps.getBorders().getByBorderType(BorderType.TOP);
border.setLineStyle(LineStyle.SINGLE);
border.setLineWidth(30);
border.setColor(Color.BLUE);
border.setDistanceFromText(0);

doc.save(getArtifactsDir() + "PageSetup.PageBorderTop.doc");
See Also:
PageSetup.BorderDistanceFrom

isVisible

public boolean isVisible()
Returns true if the LineStyle is not LineStyle.None.

Example:

Shows the equality of BorderCollections as well counting, visibility of their elements.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getCurrentParagraph().appendChild(new Run(doc, "Paragraph 1."));

Paragraph firstParagraph = doc.getFirstSection().getBody().getFirstParagraph();
BorderCollection firstParaBorders = firstParagraph.getParagraphFormat().getBorders();

builder.insertParagraph();
builder.getCurrentParagraph().appendChild(new Run(doc, "Paragraph 2."));

Paragraph secondParagraph = builder.getCurrentParagraph();
BorderCollection secondParaBorders = secondParagraph.getParagraphFormat().getBorders();

// Two paragraphs have two different BorderCollections, but share the elements that are in from the first paragraph
for (int i = 0; i < firstParaBorders.getCount(); i++) {
    Assert.assertTrue(firstParaBorders.get(i).equals(secondParaBorders.get(i)));
    Assert.assertEquals(firstParaBorders.get(i).hashCode(), secondParaBorders.get(i).hashCode());

    // Borders are invisible by default
    Assert.assertFalse(firstParaBorders.get(i).isVisible());
}

// Each border in the second paragraph collection becomes no longer the same as its counterpart from the first paragraph collection
// There are always 6 elements in a border collection, and changing all of them will make the second collection completely different from the first
secondParaBorders.getByBorderType(BorderType.LEFT).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.RIGHT).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.TOP).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.BOTTOM).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.VERTICAL).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.HORIZONTAL).setLineStyle(LineStyle.DOT_DASH);

// Now the BorderCollections both have their own elements
for (int i = 0; i < firstParaBorders.getCount(); i++) {
    Assert.assertFalse(firstParaBorders.get(i).equals(secondParaBorders.get(i)));
    Assert.assertNotEquals(firstParaBorders.get(i).hashCode(), secondParaBorders.get(i).hashCode());

    // Changing the line style made the borders visible
    Assert.assertTrue(secondParaBorders.get(i).isVisible());
}

getLineStyle/setLineStyle

public int getLineStyle() / public void setLineStyle(int value)
Gets or sets the border style. The value of the property is LineStyle integer constant.

If you set line style to none, then line width is automatically changed to zero.

Example:

Inserts a String surrounded by a border into a document.
DocumentBuilder builder = new DocumentBuilder();

builder.getFont().getBorder().setColor(Color.GREEN);
builder.getFont().getBorder().setLineWidth(2.5);
builder.getFont().getBorder().setLineStyle(LineStyle.DASH_DOT_STROKER);

builder.write("run of text in a green border");

getLineWidth/setLineWidth

public double getLineWidth() / public void setLineWidth(double value)
Gets or sets the border width in points.

If you set line width greater than zero when line style is none, the line style is automatically changed to single line.

Example:

Inserts a String surrounded by a border into a document.
DocumentBuilder builder = new DocumentBuilder();

builder.getFont().getBorder().setColor(Color.GREEN);
builder.getFont().getBorder().setLineWidth(2.5);
builder.getFont().getBorder().setLineStyle(LineStyle.DASH_DOT_STROKER);

builder.write("run of text in a green border");

getShadow/setShadow

public boolean getShadow() / public void setShadow(boolean value)
Gets or sets a value indicating whether the border has a shadow.

In Microsoft Word, for a border to have a shadow, the borders on all four sides (left, top, right and bottom) should be of the same type, width, color and all should have the Shadow property set to true.

Example:

Creates a fancy looking green wavy page border with a shadow.
Document doc = new Document();
PageSetup ps = doc.getSections().get(0).getPageSetup();

ps.getBorders().setLineStyle(LineStyle.DOUBLE_WAVE);
ps.getBorders().setLineWidth(2);
ps.getBorders().setColor(Color.GREEN);
ps.getBorders().setDistanceFromText(24);
ps.getBorders().setShadow(true);

doc.save(getArtifactsDir() + "PageSetup.PageBorders.doc");

Method Detail

clearFormatting

public void clearFormatting()
Resets border properties to default values. When border properties are reset to default values, the border is invisible.

Example:

Shows how to remove borders from a paragraph one by one.
Document doc = new Document(getMyDir() + "Border.Borders.doc");
DocumentBuilder builder = new DocumentBuilder(doc);

BorderCollection borders = builder.getParagraphFormat().getBorders();

for (Border border : borders) {
    border.clearFormatting();
}

builder.getCurrentParagraph().getRuns().get(0).setText("Paragraph with no border");

doc.save(getArtifactsDir() + "Border.NoBorder.doc");

equals

public boolean equals(Border rhs)
Determines whether the specified border is equal in value to the current border.

equals

public boolean equals(java.lang.Object obj)
Determines whether the specified object is equal in value to the current object.

Example:

Shows the equality of BorderCollections as well counting, visibility of their elements.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getCurrentParagraph().appendChild(new Run(doc, "Paragraph 1."));

Paragraph firstParagraph = doc.getFirstSection().getBody().getFirstParagraph();
BorderCollection firstParaBorders = firstParagraph.getParagraphFormat().getBorders();

builder.insertParagraph();
builder.getCurrentParagraph().appendChild(new Run(doc, "Paragraph 2."));

Paragraph secondParagraph = builder.getCurrentParagraph();
BorderCollection secondParaBorders = secondParagraph.getParagraphFormat().getBorders();

// Two paragraphs have two different BorderCollections, but share the elements that are in from the first paragraph
for (int i = 0; i < firstParaBorders.getCount(); i++) {
    Assert.assertTrue(firstParaBorders.get(i).equals(secondParaBorders.get(i)));
    Assert.assertEquals(firstParaBorders.get(i).hashCode(), secondParaBorders.get(i).hashCode());

    // Borders are invisible by default
    Assert.assertFalse(firstParaBorders.get(i).isVisible());
}

// Each border in the second paragraph collection becomes no longer the same as its counterpart from the first paragraph collection
// There are always 6 elements in a border collection, and changing all of them will make the second collection completely different from the first
secondParaBorders.getByBorderType(BorderType.LEFT).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.RIGHT).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.TOP).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.BOTTOM).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.VERTICAL).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.HORIZONTAL).setLineStyle(LineStyle.DOT_DASH);

// Now the BorderCollections both have their own elements
for (int i = 0; i < firstParaBorders.getCount(); i++) {
    Assert.assertFalse(firstParaBorders.get(i).equals(secondParaBorders.get(i)));
    Assert.assertNotEquals(firstParaBorders.get(i).hashCode(), secondParaBorders.get(i).hashCode());

    // Changing the line style made the borders visible
    Assert.assertTrue(secondParaBorders.get(i).isVisible());
}

hashCode

public int hashCode()
Serves as a hash function for this type.

Example:

Shows the equality of BorderCollections as well counting, visibility of their elements.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.getCurrentParagraph().appendChild(new Run(doc, "Paragraph 1."));

Paragraph firstParagraph = doc.getFirstSection().getBody().getFirstParagraph();
BorderCollection firstParaBorders = firstParagraph.getParagraphFormat().getBorders();

builder.insertParagraph();
builder.getCurrentParagraph().appendChild(new Run(doc, "Paragraph 2."));

Paragraph secondParagraph = builder.getCurrentParagraph();
BorderCollection secondParaBorders = secondParagraph.getParagraphFormat().getBorders();

// Two paragraphs have two different BorderCollections, but share the elements that are in from the first paragraph
for (int i = 0; i < firstParaBorders.getCount(); i++) {
    Assert.assertTrue(firstParaBorders.get(i).equals(secondParaBorders.get(i)));
    Assert.assertEquals(firstParaBorders.get(i).hashCode(), secondParaBorders.get(i).hashCode());

    // Borders are invisible by default
    Assert.assertFalse(firstParaBorders.get(i).isVisible());
}

// Each border in the second paragraph collection becomes no longer the same as its counterpart from the first paragraph collection
// There are always 6 elements in a border collection, and changing all of them will make the second collection completely different from the first
secondParaBorders.getByBorderType(BorderType.LEFT).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.RIGHT).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.TOP).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.BOTTOM).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.VERTICAL).setLineStyle(LineStyle.DOT_DASH);
secondParaBorders.getByBorderType(BorderType.HORIZONTAL).setLineStyle(LineStyle.DOT_DASH);

// Now the BorderCollections both have their own elements
for (int i = 0; i < firstParaBorders.getCount(); i++) {
    Assert.assertFalse(firstParaBorders.get(i).equals(secondParaBorders.get(i)));
    Assert.assertNotEquals(firstParaBorders.get(i).hashCode(), secondParaBorders.get(i).hashCode());

    // Changing the line style made the borders visible
    Assert.assertTrue(secondParaBorders.get(i).isVisible());
}

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.