com.aspose.words
Class Fill

java.lang.Object
    extended by com.aspose.words.Fill

public class Fill 
extends java.lang.Object

Represents fill formatting for an object.

Use the ShapeBase.Fill or Font.Fill property to access fill properties of an object. You do not create instances of the Fill class directly.

Although the Fill class provides properties to specify solid color fill only, all of the more complex fill types, including as gradient, pattern and texture are fully preserved during document open-save cycles.

Example:

Shows how to fill a shape with a solid color.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Write some text, and then cover it with a floating shape.
builder.getFont().setSize(32.0);
builder.writeln("Hello world!");

Shape shape = builder.insertShape(ShapeType.CLOUD_CALLOUT, RelativeHorizontalPosition.LEFT_MARGIN, 25.0,
        RelativeVerticalPosition.TOP_MARGIN, 25.0, 250.0, 150.0, WrapType.NONE);

// Use the "StrokeColor" property to set the color of the outline of the shape.
shape.setStrokeColor(Color.BLUE);

// Use the "FillColor" property to set the color of the inside area of the shape.
shape.setFillColor(Color.BLACK);

// The "Opacity" property determines how transparent the color is on a 0-1 scale,
// with 1 being fully opaque, and 0 being invisible.
// The shape fill by default is fully opaque, so we cannot see the text that this shape is on top of.
Assert.assertEquals(1.0d, shape.getFill().getOpacity());

// Set the shape fill color's opacity to a lower value so that we can see the text underneath it.
shape.getFill().setOpacity(0.3);

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

Property Getters/Setters Summary
java.awt.ColorgetBackColor()
voidsetBackColor(java.awt.Color value)
           Gets or sets a Color object that represents the background color for the fill.
java.awt.ColorgetColor()
voidsetColor(java.awt.Color value)
          Deprecated. Gets or sets a Color object that represents the foreground color for the fill.
intgetFillType()
           Gets a fill type. The value of the property is FillType integer constant.
java.awt.ColorgetForeColor()
voidsetForeColor(java.awt.Color value)
           Gets or sets a Color object that represents the foreground color for the fill.
byte[]getImageBytes()
           Gets the raw bytes of the fill texture or pattern.
booleangetOn()
voidsetOn(boolean value)
          Deprecated. Gets or sets value that is true if the formatting applied to this instance, is visible.
doublegetOpacity()
voidsetOpacity(double value)
           Gets or sets the degree of opacity of the specified fill as a value between 0.0 (clear) and 1.0 (opaque).
intgetPattern()
           Gets a PatternType for the fill. The value of the property is PatternType integer constant.
intgetPresetTexture()
           Gets a PresetTexture for the fill. The value of the property is PresetTexture integer constant.
booleangetRotateWithObject()
voidsetRotateWithObject(boolean value)
           Gets or sets whether the fill rotates with the specified object.
doublegetTransparency()
voidsetTransparency(double value)
           Gets or sets the degree of transparency of the specified fill as a value between 0.0 (opaque) and 1.0 (clear).
booleangetVisible()
voidsetVisible(boolean value)
           Gets or sets value that is true if the formatting applied to this instance, is visible.
 
Method Summary
voidpatterned(int patternType)
           Sets the specified fill to a pattern.
voidpatterned(int patternType, java.awt.Color foreColor, java.awt.Color backColor)
           Sets the specified fill to a pattern.
voidpresetTextured(int presetTexture)
           Sets the fill to a preset texture.
voidsolid()
           Sets the fill to a uniform color.
voidsolid(java.awt.Color color)
           Sets the fill to a specified uniform color.
 

Property Getters/Setters Detail

getBackColor/setBackColor

public java.awt.Color getBackColor() / public void setBackColor(java.awt.Color value)
Gets or sets a Color object that represents the background color for the fill.

getColor/setColor

@Deprecated
public java.awt.Color getColor() / public void setColor(java.awt.Color value)
Deprecated. Gets or sets a Color object that represents the foreground color for the fill.

Example:

Shows how to convert any of the fills back to solid fill.
Document doc = new Document(getMyDir() + "Two color gradient.docx");

// Get Fill object for Font of the first Run.
Fill fill = doc.getFirstSection().getBody().getParagraphs().get(0).getRuns().get(0).getFont().getFill();

// Check Fill properties of the Font.
System.out.println(MessageFormat.format("The type of the fill is: {0}",fill.getFillType()));
System.out.println(MessageFormat.format("The foreground color of the fill is: {0}",fill.getForeColor()));
System.out.println(MessageFormat.format("The fill is transparent at {0}%",fill.getTransparency() * 100.0));

// Change type of the fill to Solid with uniform green color.
fill.solid(Color.GREEN);
System.out.println("\nThe fill is changed:");
System.out.println(MessageFormat.format("The type of the fill is: {0}",fill.getFillType()));
System.out.println(MessageFormat.format("The foreground color of the fill is: {0}",fill.getForeColor()));
System.out.println(MessageFormat.format("The fill transparency is {0}%",fill.getTransparency() * 100.0));

doc.save(getArtifactsDir() + "Drawing.FillSolid.docx");

getFillType

public int getFillType()
Gets a fill type. The value of the property is FillType integer constant.

getForeColor/setForeColor

public java.awt.Color getForeColor() / public void setForeColor(java.awt.Color value)
Gets or sets a Color object that represents the foreground color for the fill.

Example:

Shows to create a variety of shapes.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Below are four examples of shapes that we can insert into our documents.
// 1 -  Dotted, horizontal, half-transparent red line
// with an arrow on the left end and a diamond on the right end:
Shape arrow = new Shape(doc, ShapeType.LINE);
arrow.setWidth(200.0);
arrow.getStroke().setColor(Color.RED);
arrow.getStroke().setStartArrowType(ArrowType.ARROW);
arrow.getStroke().setStartArrowLength(ArrowLength.LONG);
arrow.getStroke().setStartArrowWidth(ArrowWidth.WIDE);
arrow.getStroke().setEndArrowType(ArrowType.DIAMOND);
arrow.getStroke().setEndArrowLength(ArrowLength.LONG);
arrow.getStroke().setEndArrowWidth(ArrowWidth.WIDE);
arrow.getStroke().setDashStyle(DashStyle.DASH);
arrow.getStroke().setOpacity(0.5);

Assert.assertEquals(arrow.getStroke().getJoinStyle(), JoinStyle.MITER);

builder.insertNode(arrow);

// 2 -  Thick black diagonal line with rounded ends:
Shape line = new Shape(doc, ShapeType.LINE);
line.setTop(40.0);
line.setWidth(200.0);
line.setHeight(20.0);
line.setStrokeWeight(5.0);
line.getStroke().setEndCap(EndCap.ROUND);

builder.insertNode(line);

// 3 -  Arrow with a green fill:
Shape filledInArrow = new Shape(doc, ShapeType.ARROW);
filledInArrow.setWidth(200.0);
filledInArrow.setHeight(40.0);
filledInArrow.setTop(100.0);
filledInArrow.getFill().setForeColor(Color.GREEN);
filledInArrow.getFill().setVisible(true);

builder.insertNode(filledInArrow);

// 4 -  Arrow with a flipped orientation filled in with the Aspose logo:
Shape filledInArrowImg = new Shape(doc, ShapeType.ARROW);
filledInArrowImg.setWidth(200.0);
filledInArrowImg.setHeight(40.0);
filledInArrowImg.setTop(160.0);
filledInArrowImg.setFlipOrientation(FlipOrientation.BOTH);

BufferedImage image = ImageIO.read(getAsposelogoUri().toURL().openStream());
Graphics2D graphics2D = image.createGraphics();

// When we flip the orientation of our arrow, we also flip the image that the arrow contains.
// Flip the image the other way to cancel this out before getting the shape to display it.
AffineTransform at = new AffineTransform();
at.concatenate(AffineTransform.getScaleInstance(1, -1));
at.concatenate(AffineTransform.getTranslateInstance(0, -image.getHeight()));
graphics2D.transform(at);
graphics2D.drawImage(image, 0, 0, null);
graphics2D.dispose();

filledInArrowImg.getImageData().setImage(image);
builder.insertNode(filledInArrowImg);

doc.save(getArtifactsDir() + "Drawing.VariousShapes.docx");

getImageBytes

public byte[] getImageBytes()
Gets the raw bytes of the fill texture or pattern.

The default value is null.

Example:

Shows to create a variety of shapes.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Below are four examples of shapes that we can insert into our documents.
// 1 -  Dotted, horizontal, half-transparent red line
// with an arrow on the left end and a diamond on the right end:
Shape arrow = new Shape(doc, ShapeType.LINE);
arrow.setWidth(200.0);
arrow.getStroke().setColor(Color.RED);
arrow.getStroke().setStartArrowType(ArrowType.ARROW);
arrow.getStroke().setStartArrowLength(ArrowLength.LONG);
arrow.getStroke().setStartArrowWidth(ArrowWidth.WIDE);
arrow.getStroke().setEndArrowType(ArrowType.DIAMOND);
arrow.getStroke().setEndArrowLength(ArrowLength.LONG);
arrow.getStroke().setEndArrowWidth(ArrowWidth.WIDE);
arrow.getStroke().setDashStyle(DashStyle.DASH);
arrow.getStroke().setOpacity(0.5);

Assert.assertEquals(arrow.getStroke().getJoinStyle(), JoinStyle.MITER);

builder.insertNode(arrow);

// 2 -  Thick black diagonal line with rounded ends:
Shape line = new Shape(doc, ShapeType.LINE);
line.setTop(40.0);
line.setWidth(200.0);
line.setHeight(20.0);
line.setStrokeWeight(5.0);
line.getStroke().setEndCap(EndCap.ROUND);

builder.insertNode(line);

// 3 -  Arrow with a green fill:
Shape filledInArrow = new Shape(doc, ShapeType.ARROW);
filledInArrow.setWidth(200.0);
filledInArrow.setHeight(40.0);
filledInArrow.setTop(100.0);
filledInArrow.getFill().setForeColor(Color.GREEN);
filledInArrow.getFill().setVisible(true);

builder.insertNode(filledInArrow);

// 4 -  Arrow with a flipped orientation filled in with the Aspose logo:
Shape filledInArrowImg = new Shape(doc, ShapeType.ARROW);
filledInArrowImg.setWidth(200.0);
filledInArrowImg.setHeight(40.0);
filledInArrowImg.setTop(160.0);
filledInArrowImg.setFlipOrientation(FlipOrientation.BOTH);

BufferedImage image = ImageIO.read(getAsposelogoUri().toURL().openStream());
Graphics2D graphics2D = image.createGraphics();

// When we flip the orientation of our arrow, we also flip the image that the arrow contains.
// Flip the image the other way to cancel this out before getting the shape to display it.
AffineTransform at = new AffineTransform();
at.concatenate(AffineTransform.getScaleInstance(1, -1));
at.concatenate(AffineTransform.getTranslateInstance(0, -image.getHeight()));
graphics2D.transform(at);
graphics2D.drawImage(image, 0, 0, null);
graphics2D.dispose();

filledInArrowImg.getImageData().setImage(image);
builder.insertNode(filledInArrowImg);

doc.save(getArtifactsDir() + "Drawing.VariousShapes.docx");

getOn/setOn

@Deprecated
public boolean getOn() / public void setOn(boolean value)
Deprecated. Gets or sets value that is true if the formatting applied to this instance, is visible.

getOpacity/setOpacity

public double getOpacity() / public void setOpacity(double value)
Gets or sets the degree of opacity of the specified fill as a value between 0.0 (clear) and 1.0 (opaque). This property is the opposite of property Transparency.

Example:

Shows how to fill a shape with a solid color.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Write some text, and then cover it with a floating shape.
builder.getFont().setSize(32.0);
builder.writeln("Hello world!");

Shape shape = builder.insertShape(ShapeType.CLOUD_CALLOUT, RelativeHorizontalPosition.LEFT_MARGIN, 25.0,
        RelativeVerticalPosition.TOP_MARGIN, 25.0, 250.0, 150.0, WrapType.NONE);

// Use the "StrokeColor" property to set the color of the outline of the shape.
shape.setStrokeColor(Color.BLUE);

// Use the "FillColor" property to set the color of the inside area of the shape.
shape.setFillColor(Color.BLACK);

// The "Opacity" property determines how transparent the color is on a 0-1 scale,
// with 1 being fully opaque, and 0 being invisible.
// The shape fill by default is fully opaque, so we cannot see the text that this shape is on top of.
Assert.assertEquals(1.0d, shape.getFill().getOpacity());

// Set the shape fill color's opacity to a lower value so that we can see the text underneath it.
shape.getFill().setOpacity(0.3);

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

getPattern

public int getPattern()
Gets a PatternType for the fill. The value of the property is PatternType integer constant.

getPresetTexture

public int getPresetTexture()
Gets a PresetTexture for the fill. The value of the property is PresetTexture integer constant.

getRotateWithObject/setRotateWithObject

public boolean getRotateWithObject() / public void setRotateWithObject(boolean value)
Gets or sets whether the fill rotates with the specified object.

getTransparency/setTransparency

public double getTransparency() / public void setTransparency(double value)
Gets or sets the degree of transparency of the specified fill as a value between 0.0 (opaque) and 1.0 (clear). This property is the opposite of property Opacity.

getVisible/setVisible

public boolean getVisible() / public void setVisible(boolean value)
Gets or sets value that is true if the formatting applied to this instance, is visible.

Example:

Shows to create a variety of shapes.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Below are four examples of shapes that we can insert into our documents.
// 1 -  Dotted, horizontal, half-transparent red line
// with an arrow on the left end and a diamond on the right end:
Shape arrow = new Shape(doc, ShapeType.LINE);
arrow.setWidth(200.0);
arrow.getStroke().setColor(Color.RED);
arrow.getStroke().setStartArrowType(ArrowType.ARROW);
arrow.getStroke().setStartArrowLength(ArrowLength.LONG);
arrow.getStroke().setStartArrowWidth(ArrowWidth.WIDE);
arrow.getStroke().setEndArrowType(ArrowType.DIAMOND);
arrow.getStroke().setEndArrowLength(ArrowLength.LONG);
arrow.getStroke().setEndArrowWidth(ArrowWidth.WIDE);
arrow.getStroke().setDashStyle(DashStyle.DASH);
arrow.getStroke().setOpacity(0.5);

Assert.assertEquals(arrow.getStroke().getJoinStyle(), JoinStyle.MITER);

builder.insertNode(arrow);

// 2 -  Thick black diagonal line with rounded ends:
Shape line = new Shape(doc, ShapeType.LINE);
line.setTop(40.0);
line.setWidth(200.0);
line.setHeight(20.0);
line.setStrokeWeight(5.0);
line.getStroke().setEndCap(EndCap.ROUND);

builder.insertNode(line);

// 3 -  Arrow with a green fill:
Shape filledInArrow = new Shape(doc, ShapeType.ARROW);
filledInArrow.setWidth(200.0);
filledInArrow.setHeight(40.0);
filledInArrow.setTop(100.0);
filledInArrow.getFill().setForeColor(Color.GREEN);
filledInArrow.getFill().setVisible(true);

builder.insertNode(filledInArrow);

// 4 -  Arrow with a flipped orientation filled in with the Aspose logo:
Shape filledInArrowImg = new Shape(doc, ShapeType.ARROW);
filledInArrowImg.setWidth(200.0);
filledInArrowImg.setHeight(40.0);
filledInArrowImg.setTop(160.0);
filledInArrowImg.setFlipOrientation(FlipOrientation.BOTH);

BufferedImage image = ImageIO.read(getAsposelogoUri().toURL().openStream());
Graphics2D graphics2D = image.createGraphics();

// When we flip the orientation of our arrow, we also flip the image that the arrow contains.
// Flip the image the other way to cancel this out before getting the shape to display it.
AffineTransform at = new AffineTransform();
at.concatenate(AffineTransform.getScaleInstance(1, -1));
at.concatenate(AffineTransform.getTranslateInstance(0, -image.getHeight()));
graphics2D.transform(at);
graphics2D.drawImage(image, 0, 0, null);
graphics2D.dispose();

filledInArrowImg.getImageData().setImage(image);
builder.insertNode(filledInArrowImg);

doc.save(getArtifactsDir() + "Drawing.VariousShapes.docx");

Method Detail

patterned

public void patterned(int patternType)
Sets the specified fill to a pattern.
Parameters:
patternType - A PatternType value. PatternType

patterned

public void patterned(int patternType, java.awt.Color foreColor, java.awt.Color backColor)
Sets the specified fill to a pattern.
Parameters:
patternType - A PatternType value. PatternType
foreColor - The color of the foreground fill.
backColor - The color of the background fill.

presetTextured

public void presetTextured(int presetTexture)
Sets the fill to a preset texture.
Parameters:
presetTexture - A PresetTexture value. PresetTexture

Example:

Show how to set marker formatting.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Shape shape = builder.insertChart(ChartType.SCATTER, 432.0, 252.0);
Chart chart = shape.getChart();

// Delete default generated series.
chart.getSeries().clear();
ChartSeries series = chart.getSeries().add("AW Series 1", new double[] { 0.7, 1.8, 2.6, 3.9 },
        new double[] { 2.7, 3.2, 0.8, 1.7 });

// Set marker formatting.
series.getMarker().setSize(40);
series.getMarker().setSymbol(MarkerSymbol.SQUARE);
ChartDataPointCollection dataPoints = series.getDataPoints();
dataPoints.get(0).getMarker().getFormat().getFill().presetTextured(PresetTexture.DENIM);
dataPoints.get(0).getMarker().getFormat().getStroke().setForeColor(Color.YELLOW);
dataPoints.get(0).getMarker().getFormat().getStroke().setBackColor(Color.RED);
dataPoints.get(1).getMarker().getFormat().getFill().presetTextured(PresetTexture.WATER_DROPLETS);
dataPoints.get(1).getMarker().getFormat().getStroke().setForeColor(Color.YELLOW);
dataPoints.get(1).getMarker().getFormat().getStroke().setVisible(false);
dataPoints.get(2).getMarker().getFormat().getFill().presetTextured(PresetTexture.GREEN_MARBLE);
dataPoints.get(2).getMarker().getFormat().getStroke().setForeColor(Color.YELLOW);
dataPoints.get(3).getMarker().getFormat().getFill().presetTextured(PresetTexture.OAK);
dataPoints.get(3).getMarker().getFormat().getStroke().setForeColor(Color.YELLOW);
dataPoints.get(3).getMarker().getFormat().getStroke().setTransparency(0.5);

doc.save(getArtifactsDir() + "Charts.MarkerFormatting.docx");

solid

public void solid()
Sets the fill to a uniform color. Use this method to convert any of the fills back to solid fill.

solid

public void solid(java.awt.Color color)
Sets the fill to a specified uniform color. Use this method to convert any of the fills back to solid fill.

Example:

Shows how to convert any of the fills back to solid fill.
Document doc = new Document(getMyDir() + "Two color gradient.docx");

// Get Fill object for Font of the first Run.
Fill fill = doc.getFirstSection().getBody().getParagraphs().get(0).getRuns().get(0).getFont().getFill();

// Check Fill properties of the Font.
System.out.println(MessageFormat.format("The type of the fill is: {0}",fill.getFillType()));
System.out.println(MessageFormat.format("The foreground color of the fill is: {0}",fill.getForeColor()));
System.out.println(MessageFormat.format("The fill is transparent at {0}%",fill.getTransparency() * 100.0));

// Change type of the fill to Solid with uniform green color.
fill.solid(Color.GREEN);
System.out.println("\nThe fill is changed:");
System.out.println(MessageFormat.format("The type of the fill is: {0}",fill.getFillType()));
System.out.println(MessageFormat.format("The foreground color of the fill is: {0}",fill.getForeColor()));
System.out.println(MessageFormat.format("The fill transparency is {0}%",fill.getTransparency() * 100.0));

doc.save(getArtifactsDir() + "Drawing.FillSolid.docx");

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