public class Fill
extends java.lang.Object
To learn more, visit the Working with Graphic Elements documentation article.
Remarks:
Use the ShapeBase.getFill() or Font.getFill() property to access fill properties of an object. You do not create instances of the Fill class directly.
Examples:
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.BLACK);
// Use the "FillColor" property to set the color of the inside area of the shape.
shape.setFillColor(Color.BLUE);
// 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");
| Modifier and Type | Method and Description |
|---|---|
java.awt.Color |
getBackColor()
Gets a Color object that represents the background color for the fill.
|
int |
getBackThemeColor()
Gets a ThemeColor object that represents the background color for the fill.
|
double |
getBackTintAndShade()
Gets a double value that lightens or darkens the background color.
|
java.awt.Color |
getBaseForeColor()
Gets a Color object that represents the base foreground color for the fill without any modifiers.
|
java.awt.Color |
getColor()
Gets a Color object that represents the foreground color for the fill.
|
int |
getFillType()
Gets a fill type.
|
java.awt.Color |
getForeColor()
Gets a Color object that represents the foreground color for the fill.
|
int |
getForeThemeColor()
Gets a ThemeColor object that represents the foreground color for the fill.
|
double |
getForeTintAndShade()
Gets a double value that lightens or darkens the foreground color.
|
double |
getGradientAngle()
Gets the angle of the gradient fill.
|
GradientStopCollection |
getGradientStops()
Gets a collection of
GradientStop objects for the fill. |
int |
getGradientStyle()
Gets the gradient style
GradientStyle for the fill. |
int |
getGradientVariant()
Gets the gradient variant
GradientVariant for the fill. |
byte[] |
getImageBytes()
Gets the raw bytes of the fill texture or pattern.
|
double |
getOpacity()
Gets the degree of opacity of the specified fill as a value between 0.0 (clear) and 1.0 (opaque).
|
int |
getPattern()
Gets a
PatternType for the fill. |
int |
getPresetTexture()
Gets a
PresetTexture for the fill. |
boolean |
getRotateWithObject()
Gets whether the fill rotates with the specified object.
|
int |
getTextureAlignment()
Gets the alignment for tile texture fill.
|
double |
getTransparency()
Gets the degree of transparency of the specified fill as a value between 0.0 (opaque) and 1.0 (clear).
|
boolean |
getVisible()
Gets value that is
true if the formatting applied to this instance, is visible. |
void |
oneColorGradient(java.awt.Color color,
int style,
int variant,
double degree) |
void |
oneColorGradient(int style,
int variant,
double degree) |
void |
patterned(int patternType) |
void |
patterned(int patternType,
java.awt.Color foreColor,
java.awt.Color backColor) |
void |
presetTextured(int presetTexture) |
void |
setBackColor(java.awt.Color value)
Sets a Color object that represents the background color for the fill.
|
void |
setBackThemeColor(int value)
Sets a ThemeColor object that represents the background color for the fill.
|
void |
setBackTintAndShade(double value)
Sets a double value that lightens or darkens the background color.
|
void |
setColor(java.awt.Color value)
Sets a Color object that represents the foreground color for the fill.
|
void |
setForeColor(java.awt.Color value)
Sets a Color object that represents the foreground color for the fill.
|
void |
setForeThemeColor(int value)
Sets a ThemeColor object that represents the foreground color for the fill.
|
void |
setForeTintAndShade(double value)
Sets a double value that lightens or darkens the foreground color.
|
void |
setGradientAngle(double value)
Sets the angle of the gradient fill.
|
void |
setImage(byte[] imageBytes)
Changes the fill type to single image.
|
void |
setImage(java.io.InputStream stream) |
void |
setImage(java.lang.String fileName)
Changes the fill type to single image.
|
void |
setOpacity(double value)
Sets the degree of opacity of the specified fill as a value between 0.0 (clear) and 1.0 (opaque).
|
void |
setRotateWithObject(boolean value)
Sets whether the fill rotates with the specified object.
|
void |
setTextureAlignment(int value)
Sets the alignment for tile texture fill.
|
void |
setTransparency(double value)
Sets the degree of transparency of the specified fill as a value between 0.0 (opaque) and 1.0 (clear).
|
void |
setVisible(boolean value)
Sets value that is
true if the formatting applied to this instance, is visible. |
void |
solid()
Sets the fill to a uniform color.
|
void |
solid(java.awt.Color color)
Sets the fill to a specified uniform color.
|
void |
twoColorGradient(java.awt.Color color1,
java.awt.Color color2,
int style,
int variant) |
void |
twoColorGradient(int style,
int variant) |
public void solid()
Remarks:
Use this method to convert any of the fills back to solid fill.
Examples:
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");
public void solid(java.awt.Color color)
Remarks:
Use this method to convert any of the fills back to solid fill.
Examples:
Shows how to use chart formating.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertChart(ChartType.COLUMN, 432.0, 252.0);
Chart chart = shape.getChart();
// Delete series generated by default.
ChartSeriesCollection series = chart.getSeries();
series.clear();
String[] categories = new String[] { "Category 1", "Category 2" };
series.add("Series 1", categories, new double[] { 1.0, 2.0 });
series.add("Series 2", categories, new double[] { 3.0, 4.0 });
// Format chart background.
chart.getFormat().getFill().solid(Color.darkGray);
// Hide axis tick labels.
chart.getAxisX().getTickLabels().setPosition(AxisTickLabelPosition.NONE);
chart.getAxisY().getTickLabels().setPosition(AxisTickLabelPosition.NONE);
// Format chart title.
chart.getTitle().getFormat().getFill().solid(Color.yellow);
// Format axis title.
chart.getAxisX().getTitle().setShow(true);
chart.getAxisX().getTitle().getFormat().getFill().solid(Color.yellow);
// Format legend.
chart.getLegend().getFormat().getFill().solid(Color.yellow);
doc.save(getArtifactsDir() + "Charts.ChartFormat.docx");
public void presetTextured(int presetTexture)
public void patterned(int patternType)
public void patterned(int patternType,
java.awt.Color foreColor,
java.awt.Color backColor)
public void oneColorGradient(int style,
int variant,
double degree)
public void oneColorGradient(java.awt.Color color,
int style,
int variant,
double degree)
public void twoColorGradient(int style,
int variant)
public void twoColorGradient(java.awt.Color color1,
java.awt.Color color2,
int style,
int variant)
public void setImage(java.lang.String fileName)
throws java.lang.Exception
Examples:
Shows how to set shape fill type as image.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// There are several ways of setting image.
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// 1 - Using a local system filename:
shape.getFill().setImage(getImageDir() + "Logo.jpg");
doc.save(getArtifactsDir() + "Shape.FillImage.FileName.docx");
// 2 - Load a file into a byte array:
shape.getFill().setImage(Files.readAllBytes(Paths.get(getImageDir() + "Logo.jpg")));
doc.save(getArtifactsDir() + "Shape.FillImage.ByteArray.docx");
// 3 - From a stream:
FileInputStream stream = new FileInputStream(getImageDir() + "Logo.jpg");
try
{
shape.getFill().setImage(stream);
}
finally { if (stream != null) stream.close(); }
doc.save(getArtifactsDir() + "Shape.FillImage.Stream.docx");
fileName - The path to the image file.java.lang.Exceptionpublic void setImage(java.io.InputStream stream)
throws java.lang.Exception
java.lang.Exceptionpublic void setImage(byte[] imageBytes)
Examples:
Shows how to set shape fill type as image.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// There are several ways of setting image.
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// 1 - Using a local system filename:
shape.getFill().setImage(getImageDir() + "Logo.jpg");
doc.save(getArtifactsDir() + "Shape.FillImage.FileName.docx");
// 2 - Load a file into a byte array:
shape.getFill().setImage(Files.readAllBytes(Paths.get(getImageDir() + "Logo.jpg")));
doc.save(getArtifactsDir() + "Shape.FillImage.ByteArray.docx");
// 3 - From a stream:
FileInputStream stream = new FileInputStream(getImageDir() + "Logo.jpg");
try
{
shape.getFill().setImage(stream);
}
finally { if (stream != null) stream.close(); }
doc.save(getArtifactsDir() + "Shape.FillImage.Stream.docx");
imageBytes - The image bytes array.public int getPresetTexture()
throws java.lang.Exception
PresetTexture for the fill.
Examples:
Shows how to fill and tiling the texture inside the shape.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply texture alignment to the shape fill.
shape.getFill().presetTextured(PresetTexture.CANVAS);
shape.getFill().setTextureAlignment(TextureAlignment.TOP_RIGHT);
// Use the compliance option to define the shape using DML if you want to get "TextureAlignment"
// property after the document saves.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(); { saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); }
doc.save(getArtifactsDir() + "Shape.TextureFill.docx", saveOptions);
doc = new Document(getArtifactsDir() + "Shape.TextureFill.docx");
shape = (Shape)doc.getChild(NodeType.SHAPE, 0, true);
Assert.assertEquals(TextureAlignment.TOP_RIGHT, shape.getFill().getTextureAlignment());
Assert.assertEquals(PresetTexture.CANVAS, shape.getFill().getPresetTexture());
PresetTexture for the fill. The returned value is one of PresetTexture constants.java.lang.Exceptionpublic int getPattern()
throws java.lang.Exception
PatternType for the fill.
Examples:
Shows how to set pattern for a shape.
Document doc = new Document(getMyDir() + "Shape stroke pattern border.docx");
Shape shape = (Shape)doc.getChild(NodeType.SHAPE, 0, true);
Fill fill = shape.getFill();
System.out.println(MessageFormat.format("Pattern value is: {0}",fill.getPattern()));
// There are several ways specified fill to a pattern.
// 1 - Apply pattern to the shape fill:
fill.patterned(PatternType.DIAGONAL_BRICK);
// 2 - Apply pattern with foreground and background colors to the shape fill:
fill.patterned(PatternType.DIAGONAL_BRICK, Color.yellow, Color.blue);
doc.save(getArtifactsDir() + "Shape.FillPattern.docx");
PatternType for the fill. The returned value is one of PatternType constants.java.lang.Exceptionpublic int getTextureAlignment()
Examples:
Shows how to fill and tiling the texture inside the shape.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply texture alignment to the shape fill.
shape.getFill().presetTextured(PresetTexture.CANVAS);
shape.getFill().setTextureAlignment(TextureAlignment.TOP_RIGHT);
// Use the compliance option to define the shape using DML if you want to get "TextureAlignment"
// property after the document saves.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(); { saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); }
doc.save(getArtifactsDir() + "Shape.TextureFill.docx", saveOptions);
doc = new Document(getArtifactsDir() + "Shape.TextureFill.docx");
shape = (Shape)doc.getChild(NodeType.SHAPE, 0, true);
Assert.assertEquals(TextureAlignment.TOP_RIGHT, shape.getFill().getTextureAlignment());
Assert.assertEquals(PresetTexture.CANVAS, shape.getFill().getPresetTexture());
TextureAlignment constants.public void setTextureAlignment(int value)
Examples:
Shows how to fill and tiling the texture inside the shape.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply texture alignment to the shape fill.
shape.getFill().presetTextured(PresetTexture.CANVAS);
shape.getFill().setTextureAlignment(TextureAlignment.TOP_RIGHT);
// Use the compliance option to define the shape using DML if you want to get "TextureAlignment"
// property after the document saves.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(); { saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); }
doc.save(getArtifactsDir() + "Shape.TextureFill.docx", saveOptions);
doc = new Document(getArtifactsDir() + "Shape.TextureFill.docx");
shape = (Shape)doc.getChild(NodeType.SHAPE, 0, true);
Assert.assertEquals(TextureAlignment.TOP_RIGHT, shape.getFill().getTextureAlignment());
Assert.assertEquals(PresetTexture.CANVAS, shape.getFill().getPresetTexture());
value - The alignment for tile texture fill. The value must be one of TextureAlignment constants.public java.awt.Color getColor()
Remarks:
This property preserves the alpha component of the Color, unlike the getForeColor() / setForeColor(java.awt.Color) property, which resets it to fully opaque color.
Examples:
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");
public void setColor(java.awt.Color value)
Remarks:
This property preserves the alpha component of the Color, unlike the getForeColor() / setForeColor(java.awt.Color) property, which resets it to fully opaque color.
Examples:
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");
value - A Color object that represents the foreground color for the fill.public double getOpacity()
Remarks:
This property is the opposite of property getTransparency() / setTransparency(double).
Examples:
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.BLACK);
// Use the "FillColor" property to set the color of the inside area of the shape.
shape.setFillColor(Color.BLUE);
// 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");
public void setOpacity(double value)
Remarks:
This property is the opposite of property getTransparency() / setTransparency(double).
Examples:
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.BLACK);
// Use the "FillColor" property to set the color of the inside area of the shape.
shape.setFillColor(Color.BLUE);
// 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");
value - The degree of opacity of the specified fill as a value between 0.0 (clear) and 1.0 (opaque).public byte[] getImageBytes()
throws java.lang.Exception
Remarks:
The default value is null.
Examples:
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");
java.lang.Exceptionpublic java.awt.Color getForeColor()
Remarks:
This property resets the alpha component of the Color to fully opaque color unlike the getColor() / setColor(java.awt.Color) property, which preserves it.
Examples:
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");
public void setForeColor(java.awt.Color value)
Remarks:
This property resets the alpha component of the Color to fully opaque color unlike the getColor() / setColor(java.awt.Color) property, which preserves it.
Examples:
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");
value - A Color object that represents the foreground color for the fill.public java.awt.Color getBaseForeColor()
Examples:
Shows how to get foreground color without modifiers.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder();
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 100.0, 40.0);
shape.getFill().setForeColor(Color.RED);
shape.getFill().setForeTintAndShade(0.5);
shape.getStroke().getFill().setForeColor(Color.GREEN);
shape.getStroke().getFill().setTransparency(0.5);
Assert.assertEquals(new Color((255), (188), (188), (255)).getRGB(), shape.getFill().getForeColor().getRGB());
Assert.assertEquals(Color.RED.getRGB(), shape.getFill().getBaseForeColor().getRGB());
Assert.assertEquals(new Color((0), (255), (0), (128)).getRGB(), shape.getStroke().getForeColor().getRGB());
Assert.assertEquals(Color.GREEN.getRGB(), shape.getStroke().getBaseForeColor().getRGB());
Assert.assertEquals(Color.GREEN.getRGB(), shape.getStroke().getFill().getForeColor().getRGB());
Assert.assertEquals(Color.GREEN.getRGB(), shape.getStroke().getFill().getBaseForeColor().getRGB());
public java.awt.Color getBackColor()
Examples:
Shows how to fill a shape with a gradients.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply One-color gradient fill to the shape with ForeColor of gradient fill.
shape.getFill().oneColorGradient(Color.RED, GradientStyle.HORIZONTAL, GradientVariant.VARIANT_2, 0.1);
Assert.assertEquals(Color.RED.getRGB(), shape.getFill().getForeColor().getRGB());
Assert.assertEquals(GradientStyle.HORIZONTAL, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_2, shape.getFill().getGradientVariant());
Assert.assertEquals(270, shape.getFill().getGradientAngle());
shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply Two-color gradient fill to the shape.
shape.getFill().twoColorGradient(GradientStyle.FROM_CORNER, GradientVariant.VARIANT_4);
// Change BackColor of gradient fill.
shape.getFill().setBackColor(Color.YELLOW);
// Note that changes "GradientAngle" for "GradientStyle.FromCorner/GradientStyle.FromCenter"
// gradient fill don't get any effect, it will work only for linear gradient.
shape.getFill().setGradientAngle(15.0);
Assert.assertEquals(Color.YELLOW.getRGB(), shape.getFill().getBackColor().getRGB());
Assert.assertEquals(GradientStyle.FROM_CORNER, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_4, shape.getFill().getGradientVariant());
Assert.assertEquals(0, shape.getFill().getGradientAngle());
// Use the compliance option to define the shape using DML if you want to get "GradientStyle",
// "GradientVariant" and "GradientAngle" properties after the document saves.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(); { saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); }
doc.save(getArtifactsDir() + "Shape.GradientFill.docx", saveOptions);
public void setBackColor(java.awt.Color value)
Examples:
Shows how to fill a shape with a gradients.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply One-color gradient fill to the shape with ForeColor of gradient fill.
shape.getFill().oneColorGradient(Color.RED, GradientStyle.HORIZONTAL, GradientVariant.VARIANT_2, 0.1);
Assert.assertEquals(Color.RED.getRGB(), shape.getFill().getForeColor().getRGB());
Assert.assertEquals(GradientStyle.HORIZONTAL, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_2, shape.getFill().getGradientVariant());
Assert.assertEquals(270, shape.getFill().getGradientAngle());
shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply Two-color gradient fill to the shape.
shape.getFill().twoColorGradient(GradientStyle.FROM_CORNER, GradientVariant.VARIANT_4);
// Change BackColor of gradient fill.
shape.getFill().setBackColor(Color.YELLOW);
// Note that changes "GradientAngle" for "GradientStyle.FromCorner/GradientStyle.FromCenter"
// gradient fill don't get any effect, it will work only for linear gradient.
shape.getFill().setGradientAngle(15.0);
Assert.assertEquals(Color.YELLOW.getRGB(), shape.getFill().getBackColor().getRGB());
Assert.assertEquals(GradientStyle.FROM_CORNER, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_4, shape.getFill().getGradientVariant());
Assert.assertEquals(0, shape.getFill().getGradientAngle());
// Use the compliance option to define the shape using DML if you want to get "GradientStyle",
// "GradientVariant" and "GradientAngle" properties after the document saves.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(); { saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); }
doc.save(getArtifactsDir() + "Shape.GradientFill.docx", saveOptions);
value - A Color object that represents the background color for the fill.public int getForeThemeColor()
throws java.lang.Exception
Examples:
Shows how to set theme color for foreground/background shape color.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.ROUND_RECTANGLE, 80.0, 80.0);
Fill fill = shape.getFill();
fill.setForeThemeColor(ThemeColor.DARK_1);
fill.setBackThemeColor(ThemeColor.BACKGROUND_2);
// Note: do not use "BackThemeColor" and "BackTintAndShade" for font fill.
if (fill.getBackTintAndShade() == 0)
fill.setBackTintAndShade(0.2);
doc.save(getArtifactsDir() + "Shape.FillThemeColor.docx");
ThemeColor constants.java.lang.Exceptionpublic void setForeThemeColor(int value)
throws java.lang.Exception
Examples:
Shows how to set theme color for foreground/background shape color.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.ROUND_RECTANGLE, 80.0, 80.0);
Fill fill = shape.getFill();
fill.setForeThemeColor(ThemeColor.DARK_1);
fill.setBackThemeColor(ThemeColor.BACKGROUND_2);
// Note: do not use "BackThemeColor" and "BackTintAndShade" for font fill.
if (fill.getBackTintAndShade() == 0)
fill.setBackTintAndShade(0.2);
doc.save(getArtifactsDir() + "Shape.FillThemeColor.docx");
value - A ThemeColor object that represents the foreground color for the fill. The value must be one of ThemeColor constants.java.lang.Exceptionpublic int getBackThemeColor()
throws java.lang.Exception
Examples:
Shows how to set theme color for foreground/background shape color.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.ROUND_RECTANGLE, 80.0, 80.0);
Fill fill = shape.getFill();
fill.setForeThemeColor(ThemeColor.DARK_1);
fill.setBackThemeColor(ThemeColor.BACKGROUND_2);
// Note: do not use "BackThemeColor" and "BackTintAndShade" for font fill.
if (fill.getBackTintAndShade() == 0)
fill.setBackTintAndShade(0.2);
doc.save(getArtifactsDir() + "Shape.FillThemeColor.docx");
ThemeColor constants.java.lang.Exceptionpublic void setBackThemeColor(int value)
throws java.lang.Exception
Examples:
Shows how to set theme color for foreground/background shape color.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.ROUND_RECTANGLE, 80.0, 80.0);
Fill fill = shape.getFill();
fill.setForeThemeColor(ThemeColor.DARK_1);
fill.setBackThemeColor(ThemeColor.BACKGROUND_2);
// Note: do not use "BackThemeColor" and "BackTintAndShade" for font fill.
if (fill.getBackTintAndShade() == 0)
fill.setBackTintAndShade(0.2);
doc.save(getArtifactsDir() + "Shape.FillThemeColor.docx");
value - A ThemeColor object that represents the background color for the fill. The value must be one of ThemeColor constants.java.lang.Exceptionpublic double getForeTintAndShade()
java.lang.IllegalArgumentException - Throw if set this property to a value less than -1 or more than 1.
Remarks:
The allowed values are in the range from -1 (the darkest) to 1 (the lightest) for this property.
Zero (0) is neutral.
Examples:
Shows how to manage lightening and darkening foreground font color.
Document doc = new Document(getMyDir() + "Big document.docx");
Fill textFill = doc.getFirstSection().getBody().getFirstParagraph().getRuns().get(0).getFont().getFill();
textFill.setForeThemeColor(ThemeColor.ACCENT_1);
if (textFill.getForeTintAndShade() == 0)
textFill.setForeTintAndShade(0.5);
doc.save(getArtifactsDir() + "Shape.FillTintAndShade.docx");
public void setForeTintAndShade(double value)
value - A double value that lightens or darkens the foreground color.java.lang.IllegalArgumentException - Throw if set this property to a value less than -1 or more than 1.
Remarks:
The allowed values are in the range from -1 (the darkest) to 1 (the lightest) for this property.
Zero (0) is neutral.
Examples:
Shows how to manage lightening and darkening foreground font color.
Document doc = new Document(getMyDir() + "Big document.docx");
Fill textFill = doc.getFirstSection().getBody().getFirstParagraph().getRuns().get(0).getFont().getFill();
textFill.setForeThemeColor(ThemeColor.ACCENT_1);
if (textFill.getForeTintAndShade() == 0)
textFill.setForeTintAndShade(0.5);
doc.save(getArtifactsDir() + "Shape.FillTintAndShade.docx");
public double getBackTintAndShade()
java.lang.IllegalArgumentException - Throw if set this property to a value less than -1 or more than 1.
Remarks:
The allowed values are in the range from -1 (the darkest) to 1 (the lightest) for this property.
Zero (0) is neutral.
Examples:
Shows how to set theme color for foreground/background shape color.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.ROUND_RECTANGLE, 80.0, 80.0);
Fill fill = shape.getFill();
fill.setForeThemeColor(ThemeColor.DARK_1);
fill.setBackThemeColor(ThemeColor.BACKGROUND_2);
// Note: do not use "BackThemeColor" and "BackTintAndShade" for font fill.
if (fill.getBackTintAndShade() == 0)
fill.setBackTintAndShade(0.2);
doc.save(getArtifactsDir() + "Shape.FillThemeColor.docx");
public void setBackTintAndShade(double value)
value - A double value that lightens or darkens the background color.java.lang.IllegalArgumentException - Throw if set this property to a value less than -1 or more than 1.
Remarks:
The allowed values are in the range from -1 (the darkest) to 1 (the lightest) for this property.
Zero (0) is neutral.
Examples:
Shows how to set theme color for foreground/background shape color.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.ROUND_RECTANGLE, 80.0, 80.0);
Fill fill = shape.getFill();
fill.setForeThemeColor(ThemeColor.DARK_1);
fill.setBackThemeColor(ThemeColor.BACKGROUND_2);
// Note: do not use "BackThemeColor" and "BackTintAndShade" for font fill.
if (fill.getBackTintAndShade() == 0)
fill.setBackTintAndShade(0.2);
doc.save(getArtifactsDir() + "Shape.FillThemeColor.docx");
public boolean getVisible()
true if the formatting applied to this instance, is visible.
Examples:
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");
true if the formatting applied to this instance, is visible.public void setVisible(boolean value)
true if the formatting applied to this instance, is visible.
Examples:
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");
value - Value that is true if the formatting applied to this instance, is visible.public double getTransparency()
Remarks:
This property is the opposite of property getOpacity() / setOpacity(double).
Examples:
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");
public void setTransparency(double value)
Remarks:
This property is the opposite of property getOpacity() / setOpacity(double).
Examples:
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");
value - The degree of transparency of the specified fill as a value between 0.0 (opaque) and 1.0 (clear).public boolean getRotateWithObject()
public void setRotateWithObject(boolean value)
value - Whether the fill rotates with the specified object.public int getFillType()
Examples:
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");
FillType constants.public double getGradientAngle()
Examples:
Shows how to fill a shape with a gradients.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply One-color gradient fill to the shape with ForeColor of gradient fill.
shape.getFill().oneColorGradient(Color.RED, GradientStyle.HORIZONTAL, GradientVariant.VARIANT_2, 0.1);
Assert.assertEquals(Color.RED.getRGB(), shape.getFill().getForeColor().getRGB());
Assert.assertEquals(GradientStyle.HORIZONTAL, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_2, shape.getFill().getGradientVariant());
Assert.assertEquals(270, shape.getFill().getGradientAngle());
shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply Two-color gradient fill to the shape.
shape.getFill().twoColorGradient(GradientStyle.FROM_CORNER, GradientVariant.VARIANT_4);
// Change BackColor of gradient fill.
shape.getFill().setBackColor(Color.YELLOW);
// Note that changes "GradientAngle" for "GradientStyle.FromCorner/GradientStyle.FromCenter"
// gradient fill don't get any effect, it will work only for linear gradient.
shape.getFill().setGradientAngle(15.0);
Assert.assertEquals(Color.YELLOW.getRGB(), shape.getFill().getBackColor().getRGB());
Assert.assertEquals(GradientStyle.FROM_CORNER, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_4, shape.getFill().getGradientVariant());
Assert.assertEquals(0, shape.getFill().getGradientAngle());
// Use the compliance option to define the shape using DML if you want to get "GradientStyle",
// "GradientVariant" and "GradientAngle" properties after the document saves.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(); { saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); }
doc.save(getArtifactsDir() + "Shape.GradientFill.docx", saveOptions);
public void setGradientAngle(double value)
Examples:
Shows how to fill a shape with a gradients.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply One-color gradient fill to the shape with ForeColor of gradient fill.
shape.getFill().oneColorGradient(Color.RED, GradientStyle.HORIZONTAL, GradientVariant.VARIANT_2, 0.1);
Assert.assertEquals(Color.RED.getRGB(), shape.getFill().getForeColor().getRGB());
Assert.assertEquals(GradientStyle.HORIZONTAL, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_2, shape.getFill().getGradientVariant());
Assert.assertEquals(270, shape.getFill().getGradientAngle());
shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply Two-color gradient fill to the shape.
shape.getFill().twoColorGradient(GradientStyle.FROM_CORNER, GradientVariant.VARIANT_4);
// Change BackColor of gradient fill.
shape.getFill().setBackColor(Color.YELLOW);
// Note that changes "GradientAngle" for "GradientStyle.FromCorner/GradientStyle.FromCenter"
// gradient fill don't get any effect, it will work only for linear gradient.
shape.getFill().setGradientAngle(15.0);
Assert.assertEquals(Color.YELLOW.getRGB(), shape.getFill().getBackColor().getRGB());
Assert.assertEquals(GradientStyle.FROM_CORNER, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_4, shape.getFill().getGradientVariant());
Assert.assertEquals(0, shape.getFill().getGradientAngle());
// Use the compliance option to define the shape using DML if you want to get "GradientStyle",
// "GradientVariant" and "GradientAngle" properties after the document saves.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(); { saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); }
doc.save(getArtifactsDir() + "Shape.GradientFill.docx", saveOptions);
value - The angle of the gradient fill.public int getGradientVariant()
GradientVariant for the fill.
Examples:
Shows how to fill a shape with a gradients.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply One-color gradient fill to the shape with ForeColor of gradient fill.
shape.getFill().oneColorGradient(Color.RED, GradientStyle.HORIZONTAL, GradientVariant.VARIANT_2, 0.1);
Assert.assertEquals(Color.RED.getRGB(), shape.getFill().getForeColor().getRGB());
Assert.assertEquals(GradientStyle.HORIZONTAL, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_2, shape.getFill().getGradientVariant());
Assert.assertEquals(270, shape.getFill().getGradientAngle());
shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply Two-color gradient fill to the shape.
shape.getFill().twoColorGradient(GradientStyle.FROM_CORNER, GradientVariant.VARIANT_4);
// Change BackColor of gradient fill.
shape.getFill().setBackColor(Color.YELLOW);
// Note that changes "GradientAngle" for "GradientStyle.FromCorner/GradientStyle.FromCenter"
// gradient fill don't get any effect, it will work only for linear gradient.
shape.getFill().setGradientAngle(15.0);
Assert.assertEquals(Color.YELLOW.getRGB(), shape.getFill().getBackColor().getRGB());
Assert.assertEquals(GradientStyle.FROM_CORNER, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_4, shape.getFill().getGradientVariant());
Assert.assertEquals(0, shape.getFill().getGradientAngle());
// Use the compliance option to define the shape using DML if you want to get "GradientStyle",
// "GradientVariant" and "GradientAngle" properties after the document saves.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(); { saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); }
doc.save(getArtifactsDir() + "Shape.GradientFill.docx", saveOptions);
GradientVariant for the fill. The returned value is one of GradientVariant constants.public int getGradientStyle()
GradientStyle for the fill.
Examples:
Shows how to fill a shape with a gradients.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply One-color gradient fill to the shape with ForeColor of gradient fill.
shape.getFill().oneColorGradient(Color.RED, GradientStyle.HORIZONTAL, GradientVariant.VARIANT_2, 0.1);
Assert.assertEquals(Color.RED.getRGB(), shape.getFill().getForeColor().getRGB());
Assert.assertEquals(GradientStyle.HORIZONTAL, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_2, shape.getFill().getGradientVariant());
Assert.assertEquals(270, shape.getFill().getGradientAngle());
shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
// Apply Two-color gradient fill to the shape.
shape.getFill().twoColorGradient(GradientStyle.FROM_CORNER, GradientVariant.VARIANT_4);
// Change BackColor of gradient fill.
shape.getFill().setBackColor(Color.YELLOW);
// Note that changes "GradientAngle" for "GradientStyle.FromCorner/GradientStyle.FromCenter"
// gradient fill don't get any effect, it will work only for linear gradient.
shape.getFill().setGradientAngle(15.0);
Assert.assertEquals(Color.YELLOW.getRGB(), shape.getFill().getBackColor().getRGB());
Assert.assertEquals(GradientStyle.FROM_CORNER, shape.getFill().getGradientStyle());
Assert.assertEquals(GradientVariant.VARIANT_4, shape.getFill().getGradientVariant());
Assert.assertEquals(0, shape.getFill().getGradientAngle());
// Use the compliance option to define the shape using DML if you want to get "GradientStyle",
// "GradientVariant" and "GradientAngle" properties after the document saves.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(); { saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); }
doc.save(getArtifactsDir() + "Shape.GradientFill.docx", saveOptions);
GradientStyle for the fill. The returned value is one of GradientStyle constants.public GradientStopCollection getGradientStops()
GradientStop objects for the fill.
Examples:
Shows how to add gradient stops to the gradient fill.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.insertShape(ShapeType.RECTANGLE, 80.0, 80.0);
shape.getFill().twoColorGradient(Color.green, Color.RED, GradientStyle.HORIZONTAL, GradientVariant.VARIANT_2);
// Get gradient stops collection.
GradientStopCollection gradientStops = shape.getFill().getGradientStops();
// Change first gradient stop.
gradientStops.get(0).setColor(Color.yellow);
gradientStops.get(0).setPosition(0.1);
gradientStops.get(0).setTransparency(0.25);
// Add new gradient stop to the end of collection.
GradientStop gradientStop = new GradientStop(Color.blue, 0.5);
gradientStops.add(gradientStop);
// Remove gradient stop at index 1.
gradientStops.removeAt(1);
// And insert new gradient stop at the same index 1.
gradientStops.insert(1, new GradientStop(Color.pink, 0.75, 0.3));
// Remove last gradient stop in the collection.
gradientStop = gradientStops.get(2);
gradientStops.remove(gradientStop);
Assert.assertEquals(2, gradientStops.getCount());
Assert.assertEquals(new Color((255), (255), (0)), gradientStops.get(0).getBaseColor());
Assert.assertEquals(Color.yellow.getRGB(), gradientStops.get(0).getColor().getRGB());
Assert.assertEquals(0.1d, gradientStops.get(0).getPosition(), 0.01d);
Assert.assertEquals(0.25d, gradientStops.get(0).getTransparency(), 0.01d);
Assert.assertEquals(Color.pink.getRGB(), gradientStops.get(1).getColor().getRGB());
Assert.assertEquals(0.75d, gradientStops.get(1).getPosition(), 0.01d);
Assert.assertEquals(0.3d, gradientStops.get(1).getTransparency(), 0.01d);
// Use the compliance option to define the shape using DML
// if you want to get "GradientStops" property after the document saves.
OoxmlSaveOptions saveOptions = new OoxmlSaveOptions(); { saveOptions.setCompliance(OoxmlCompliance.ISO_29500_2008_STRICT); }
doc.save(getArtifactsDir() + "Shape.GradientStops.docx", saveOptions);
GradientStop objects for the fill.