com.aspose.words
Class Stroke

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

public class Stroke 
extends java.lang.Object

Defines a stroke for a shape.

Use the Shape.Stroke property to access stroke properties of a shape. You do not create instances of the Stroke class directly.

Example:

Shows how change stroke properties.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Create a new shape of type Rectangle
Shape rectangle = new Shape(doc, ShapeType.RECTANGLE);

// Change stroke properties
Stroke stroke = rectangle.getStroke();
stroke.setOn(true);
stroke.setWeight(5.0);
stroke.setColor(Color.RED);
stroke.setDashStyle(DashStyle.SHORT_DASH_DOT_DOT);
stroke.setJoinStyle(JoinStyle.MITER);
stroke.setEndCap(EndCap.SQUARE);
stroke.setLineStyle(ShapeLineStyle.TRIPLE);

// Insert shape object
builder.insertNode(rectangle);
See Also:
Shape.Stroke

Property Getters/Setters Summary
java.awt.ColorgetColor()
voidsetColor(java.awt.Color value)
           Defines the color of a stroke.
java.awt.ColorgetColor2()
voidsetColor2(java.awt.Color value)
           Defines a second color for a stroke.
intgetDashStyle()
voidsetDashStyle(int value)
           Specifies the dot and dash pattern for a stroke. The value of the property is DashStyle integer constant.
intgetEndArrowLength()
voidsetEndArrowLength(int value)
           Defines the arrowhead length for the end of a stroke. The value of the property is ArrowLength integer constant.
intgetEndArrowType()
voidsetEndArrowType(int value)
           Defines the arrowhead for the end of a stroke. The value of the property is ArrowType integer constant.
intgetEndArrowWidth()
voidsetEndArrowWidth(int value)
           Defines the arrowhead width for the end of a stroke. The value of the property is ArrowWidth integer constant.
intgetEndCap()
voidsetEndCap(int value)
           Defines the cap style for the end of a stroke. The value of the property is EndCap integer constant.
byte[]getImageBytes()
           Defines the image for a stroke image or pattern fill.
intgetJoinStyle()
voidsetJoinStyle(int value)
           Defines the join style of a polyline. The value of the property is JoinStyle integer constant.
intgetLineStyle()
voidsetLineStyle(int value)
           Defines the line style of the stroke. The value of the property is ShapeLineStyle integer constant.
booleangetOn()
voidsetOn(boolean value)
           Defines whether the path will be stroked.
doublegetOpacity()
voidsetOpacity(double value)
           Defines the amount of transparency of a stroke. Valid range is from 0 to 1.
intgetStartArrowLength()
voidsetStartArrowLength(int value)
           Defines the arrowhead length for the start of a stroke. The value of the property is ArrowLength integer constant.
intgetStartArrowType()
voidsetStartArrowType(int value)
           Defines the arrowhead for the start of a stroke. The value of the property is ArrowType integer constant.
intgetStartArrowWidth()
voidsetStartArrowWidth(int value)
           Defines the arrowhead width for the start of a stroke. The value of the property is ArrowWidth integer constant.
doublegetWeight()
voidsetWeight(double value)
           Defines the brush thickness that strokes the path of a shape in points.
 

Property Getters/Setters Detail

getColor/setColor

public java.awt.Color getColor() / public void setColor(java.awt.Color value)
Defines the color of a stroke.

The default value is java.awt.Color.BLACK.

Example:

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

// Draw a dotted horizontal half-transparent red line with an arrow on the left end and a diamond on the other
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);

// Draw a 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);

// Draw an 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().setColor(Color.GREEN);
filledInArrow.getFill().setOn(true);

builder.insertNode(filledInArrow);

// Draw an arrow filled in with the Aspose logo and flip its orientation
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 flipped the orientation of our arrow, the image content was flipped too
// If we want it to be displayed the right side up, we have to reverse the arrow flip on the image
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");

getColor2/setColor2

public java.awt.Color getColor2() / public void setColor2(java.awt.Color value)
Defines a second color for a stroke.

The default value is java.awt.Color.WHITE.

Example:

Shows how to process shape stroke features.
// Open a document which contains a rectangle with a thick, two-tone-patterned outline
Document doc = new Document(getMyDir() + "Shape stroke pattern border.docx");

// Get the first shape's stroke
Shape shape = (Shape) doc.getChild(NodeType.SHAPE, 0, true);
Stroke s = shape.getStroke();

// Every stroke will have a Color attribute, but only strokes from older Word versions have a Color2 attribute,
// since the two-tone pattern line feature which requires the Color2 attribute is no longer supported
Assert.assertEquals(s.getColor(), new Color((128), (0), (0), (255)));
Assert.assertEquals(s.getColor2(), new Color((255), (255), (0), (255)));

// This attribute contains the image data for the pattern, which we can save to our local file system
Assert.assertNotNull(s.getImageBytes());
ByteArrayInputStream imageInputStream = new ByteArrayInputStream(s.getImageBytes());
BufferedImage bImage = ImageIO.read(imageInputStream);
ImageIO.write(bImage, "png", new File(getArtifactsDir() + "Drawing.StrokePattern.png"));

getDashStyle/setDashStyle

public int getDashStyle() / public void setDashStyle(int value)
Specifies the dot and dash pattern for a stroke. The value of the property is DashStyle integer constant.

The default value is DashStyle.SOLID.

Example:

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

// Draw a dotted horizontal half-transparent red line with an arrow on the left end and a diamond on the other
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);

// Draw a 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);

// Draw an 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().setColor(Color.GREEN);
filledInArrow.getFill().setOn(true);

builder.insertNode(filledInArrow);

// Draw an arrow filled in with the Aspose logo and flip its orientation
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 flipped the orientation of our arrow, the image content was flipped too
// If we want it to be displayed the right side up, we have to reverse the arrow flip on the image
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");

getEndArrowLength/setEndArrowLength

public int getEndArrowLength() / public void setEndArrowLength(int value)
Defines the arrowhead length for the end of a stroke. The value of the property is ArrowLength integer constant.

The default value is ArrowLength.MEDIUM.

Example:

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

// Draw a dotted horizontal half-transparent red line with an arrow on the left end and a diamond on the other
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);

// Draw a 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);

// Draw an 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().setColor(Color.GREEN);
filledInArrow.getFill().setOn(true);

builder.insertNode(filledInArrow);

// Draw an arrow filled in with the Aspose logo and flip its orientation
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 flipped the orientation of our arrow, the image content was flipped too
// If we want it to be displayed the right side up, we have to reverse the arrow flip on the image
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");

getEndArrowType/setEndArrowType

public int getEndArrowType() / public void setEndArrowType(int value)
Defines the arrowhead for the end of a stroke. The value of the property is ArrowType integer constant.

The default value is ArrowType.NONE.

Example:

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

// Draw a dotted horizontal half-transparent red line with an arrow on the left end and a diamond on the other
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);

// Draw a 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);

// Draw an 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().setColor(Color.GREEN);
filledInArrow.getFill().setOn(true);

builder.insertNode(filledInArrow);

// Draw an arrow filled in with the Aspose logo and flip its orientation
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 flipped the orientation of our arrow, the image content was flipped too
// If we want it to be displayed the right side up, we have to reverse the arrow flip on the image
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");

getEndArrowWidth/setEndArrowWidth

public int getEndArrowWidth() / public void setEndArrowWidth(int value)
Defines the arrowhead width for the end of a stroke. The value of the property is ArrowWidth integer constant.

The default value is ArrowWidth.MEDIUM.

Example:

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

// Draw a dotted horizontal half-transparent red line with an arrow on the left end and a diamond on the other
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);

// Draw a 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);

// Draw an 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().setColor(Color.GREEN);
filledInArrow.getFill().setOn(true);

builder.insertNode(filledInArrow);

// Draw an arrow filled in with the Aspose logo and flip its orientation
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 flipped the orientation of our arrow, the image content was flipped too
// If we want it to be displayed the right side up, we have to reverse the arrow flip on the image
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");

getEndCap/setEndCap

public int getEndCap() / public void setEndCap(int value)
Defines the cap style for the end of a stroke. The value of the property is EndCap integer constant.

The default value is EndCap.FLAT.

Example:

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

// Draw a dotted horizontal half-transparent red line with an arrow on the left end and a diamond on the other
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);

// Draw a 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);

// Draw an 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().setColor(Color.GREEN);
filledInArrow.getFill().setOn(true);

builder.insertNode(filledInArrow);

// Draw an arrow filled in with the Aspose logo and flip its orientation
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 flipped the orientation of our arrow, the image content was flipped too
// If we want it to be displayed the right side up, we have to reverse the arrow flip on the image
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()
Defines the image for a stroke image or pattern fill.

Example:

Shows how to process shape stroke features.
// Open a document which contains a rectangle with a thick, two-tone-patterned outline
Document doc = new Document(getMyDir() + "Shape stroke pattern border.docx");

// Get the first shape's stroke
Shape shape = (Shape) doc.getChild(NodeType.SHAPE, 0, true);
Stroke s = shape.getStroke();

// Every stroke will have a Color attribute, but only strokes from older Word versions have a Color2 attribute,
// since the two-tone pattern line feature which requires the Color2 attribute is no longer supported
Assert.assertEquals(s.getColor(), new Color((128), (0), (0), (255)));
Assert.assertEquals(s.getColor2(), new Color((255), (255), (0), (255)));

// This attribute contains the image data for the pattern, which we can save to our local file system
Assert.assertNotNull(s.getImageBytes());
ByteArrayInputStream imageInputStream = new ByteArrayInputStream(s.getImageBytes());
BufferedImage bImage = ImageIO.read(imageInputStream);
ImageIO.write(bImage, "png", new File(getArtifactsDir() + "Drawing.StrokePattern.png"));

getJoinStyle/setJoinStyle

public int getJoinStyle() / public void setJoinStyle(int value)
Defines the join style of a polyline. The value of the property is JoinStyle integer constant.

The default value is JoinStyle.ROUND.

Example:

Shows how change stroke properties.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Create a new shape of type Rectangle
Shape rectangle = new Shape(doc, ShapeType.RECTANGLE);

// Change stroke properties
Stroke stroke = rectangle.getStroke();
stroke.setOn(true);
stroke.setWeight(5.0);
stroke.setColor(Color.RED);
stroke.setDashStyle(DashStyle.SHORT_DASH_DOT_DOT);
stroke.setJoinStyle(JoinStyle.MITER);
stroke.setEndCap(EndCap.SQUARE);
stroke.setLineStyle(ShapeLineStyle.TRIPLE);

// Insert shape object
builder.insertNode(rectangle);

getLineStyle/setLineStyle

public int getLineStyle() / public void setLineStyle(int value)
Defines the line style of the stroke. The value of the property is ShapeLineStyle integer constant.

The default value is ShapeLineStyle.SINGLE.

Example:

Shows how change stroke properties.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Create a new shape of type Rectangle
Shape rectangle = new Shape(doc, ShapeType.RECTANGLE);

// Change stroke properties
Stroke stroke = rectangle.getStroke();
stroke.setOn(true);
stroke.setWeight(5.0);
stroke.setColor(Color.RED);
stroke.setDashStyle(DashStyle.SHORT_DASH_DOT_DOT);
stroke.setJoinStyle(JoinStyle.MITER);
stroke.setEndCap(EndCap.SQUARE);
stroke.setLineStyle(ShapeLineStyle.TRIPLE);

// Insert shape object
builder.insertNode(rectangle);

getOn/setOn

public boolean getOn() / public void setOn(boolean value)
Defines whether the path will be stroked.

The default value is true.

Example:

Shows how change stroke properties.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Create a new shape of type Rectangle
Shape rectangle = new Shape(doc, ShapeType.RECTANGLE);

// Change stroke properties
Stroke stroke = rectangle.getStroke();
stroke.setOn(true);
stroke.setWeight(5.0);
stroke.setColor(Color.RED);
stroke.setDashStyle(DashStyle.SHORT_DASH_DOT_DOT);
stroke.setJoinStyle(JoinStyle.MITER);
stroke.setEndCap(EndCap.SQUARE);
stroke.setLineStyle(ShapeLineStyle.TRIPLE);

// Insert shape object
builder.insertNode(rectangle);

getOpacity/setOpacity

public double getOpacity() / public void setOpacity(double value)
Defines the amount of transparency of a stroke. Valid range is from 0 to 1.

The default value is 1.

Example:

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

// Draw a dotted horizontal half-transparent red line with an arrow on the left end and a diamond on the other
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);

// Draw a 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);

// Draw an 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().setColor(Color.GREEN);
filledInArrow.getFill().setOn(true);

builder.insertNode(filledInArrow);

// Draw an arrow filled in with the Aspose logo and flip its orientation
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 flipped the orientation of our arrow, the image content was flipped too
// If we want it to be displayed the right side up, we have to reverse the arrow flip on the image
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");

getStartArrowLength/setStartArrowLength

public int getStartArrowLength() / public void setStartArrowLength(int value)
Defines the arrowhead length for the start of a stroke. The value of the property is ArrowLength integer constant.

The default value is ArrowLength.MEDIUM.

Example:

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

// Draw a dotted horizontal half-transparent red line with an arrow on the left end and a diamond on the other
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);

// Draw a 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);

// Draw an 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().setColor(Color.GREEN);
filledInArrow.getFill().setOn(true);

builder.insertNode(filledInArrow);

// Draw an arrow filled in with the Aspose logo and flip its orientation
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 flipped the orientation of our arrow, the image content was flipped too
// If we want it to be displayed the right side up, we have to reverse the arrow flip on the image
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");

getStartArrowType/setStartArrowType

public int getStartArrowType() / public void setStartArrowType(int value)
Defines the arrowhead for the start of a stroke. The value of the property is ArrowType integer constant.

The default value is ArrowType.NONE.

Example:

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

// Draw a dotted horizontal half-transparent red line with an arrow on the left end and a diamond on the other
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);

// Draw a 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);

// Draw an 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().setColor(Color.GREEN);
filledInArrow.getFill().setOn(true);

builder.insertNode(filledInArrow);

// Draw an arrow filled in with the Aspose logo and flip its orientation
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 flipped the orientation of our arrow, the image content was flipped too
// If we want it to be displayed the right side up, we have to reverse the arrow flip on the image
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");

getStartArrowWidth/setStartArrowWidth

public int getStartArrowWidth() / public void setStartArrowWidth(int value)
Defines the arrowhead width for the start of a stroke. The value of the property is ArrowWidth integer constant.

The default value is ArrowWidth.MEDIUM.

Example:

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

// Draw a dotted horizontal half-transparent red line with an arrow on the left end and a diamond on the other
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);

// Draw a 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);

// Draw an 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().setColor(Color.GREEN);
filledInArrow.getFill().setOn(true);

builder.insertNode(filledInArrow);

// Draw an arrow filled in with the Aspose logo and flip its orientation
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 flipped the orientation of our arrow, the image content was flipped too
// If we want it to be displayed the right side up, we have to reverse the arrow flip on the image
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");

getWeight/setWeight

public double getWeight() / public void setWeight(double value)
Defines the brush thickness that strokes the path of a shape in points.

The default value is 0.75.

Example:

Shows how change stroke properties.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Create a new shape of type Rectangle
Shape rectangle = new Shape(doc, ShapeType.RECTANGLE);

// Change stroke properties
Stroke stroke = rectangle.getStroke();
stroke.setOn(true);
stroke.setWeight(5.0);
stroke.setColor(Color.RED);
stroke.setDashStyle(DashStyle.SHORT_DASH_DOT_DOT);
stroke.setJoinStyle(JoinStyle.MITER);
stroke.setEndCap(EndCap.SQUARE);
stroke.setLineStyle(ShapeLineStyle.TRIPLE);

// Insert shape object
builder.insertNode(rectangle);

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