Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save aspose-com-gists/515dd8a2157e94be1d82c20a5e6f96f4 to your computer and use it in GitHub Desktop.

Select an option

Save aspose-com-gists/515dd8a2157e94be1d82c20a5e6f96f4 to your computer and use it in GitHub Desktop.
Add graphics elements in XPS document with .NET

Work with Graphics Elements in XPS Examples

These snippets show how to compose graphics in XPS with Aspose.Page for .NET. Draw shapes, render text and images, use gradient and pattern brushes, apply clipping, transforms, and transparency to create visually rich pages.

Key Use Cases

  • Draw shapes, lines, curves
  • Add text and images
  • Use solid, gradient, image, and visual brushes
  • Apply transforms, clipping, and transparency

How to Run Examples

  1. Reference Aspose.Page for .NET: Aspose.Page on Windows; Aspose.Page.Drawing on non‑Windows.
  2. Copy a snippet into your project or run the related test.
  3. Apply a temporary license as described in the licensing guide.
  4. Build and run.

Restrictions

Evaluation mode limits the number of manipulated XPS elements to 4. Apply a valid license to enable full capabilities.

Related Documentation

Related Resources

Requirements

  • .NET 6.0+, .NET Core, or .NET Framework
  • Aspose.Page for .NET library
Aspose.Page for .NET – Add graphics elements in XPS Examples
// Paint rectangle with diagonal gradient fill in XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/working-with-gradient/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "DiagonalGradient_outXPS.xps";
// Initialize List of XpsGradentStop
List<XpsGradientStop> stops = new List<XpsGradientStop>();
// Add Colors to Gradient
stops.Add(doc.CreateGradientStop(doc.CreateColor(0, 142, 4), 0f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 202, 0), 0.144531f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 250, 0), 0.264648f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 0, 0), 0.414063f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(233, 0, 255), 0.544922f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(107, 27, 190), 0.694336f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(63, 0, 255), 0.844727f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(0, 199, 80), 1f));
// Create new path by defining geometery in abbreviation form
XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,10 L 228,10 228,100 10,100"));
path.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 20f, 70f);
path.Fill = doc.CreateLinearGradientBrush(new PointF(10f, 10f), new PointF(228f, 100f));
((XpsGradientBrush)path.Fill).GradientStops.AddRange(stops);
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Add ellipse to XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/graphic-utilities/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "AddEllipse_outXPS.xps";
// Radial gradient stroked ellipse in the lower left
List<XpsGradientStop> stops = new List<XpsGradientStop>();
stops.Add(doc.CreateGradientStop(doc.CreateColor(0, 0, 255), 0f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 0, 0), .25f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(0, 255, 0), .5f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 255, 0), .75f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 0, 0), 1f));
XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 20,250 A 100,50 0 1 1 220,250 100,50 0 1 1 20,250"));
path.Stroke = doc.CreateRadialGradientBrush(new PointF(575f, 125f), new PointF(575f, 100f), 75f, 50f);
((XpsGradientBrush)path.Stroke).SpreadMethod = XpsSpreadMethod.Reflect;
((XpsGradientBrush)path.Stroke).GradientStops.AddRange(stops);
stops.Clear();
path.StrokeThickness = 12f;
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Add grid with visual brush to XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/working-with-visual-brush/
XpsDocument doc = new XpsDocument();
string outputFileName = "AddGrid_out.xps";
// Geometry for magenta grid VisualBrush
XpsPathGeometry pathGeometry = doc.CreatePathGeometry();
pathGeometry.AddSegment(doc.CreatePolyLineSegment(
new PointF[] { new PointF(240f, 5f), new PointF(240f, 310f), new PointF(0f, 310f) }));
pathGeometry[0].StartPoint = new PointF(0f, 5f);
// Canvas for magenta grid VisualBrush
XpsCanvas visualCanvas = doc.CreateCanvas();
XpsPath visualPath = visualCanvas.AddPath(
doc.CreatePathGeometry("M 0,4 L 4,4 4,0 6,0 6,4 10,4 10,6 6,6 6,10 4,10 4,6 0,6 Z"));
visualPath.Fill = doc.CreateSolidColorBrush(doc.CreateColor(1f, .61f, 0.1f, 0.61f));
XpsPath gridPath = doc.CreatePath(pathGeometry);
//Create Visual Brush, it is specified by some XPS fragment (vector graphics and glyphs)
gridPath.Fill = doc.CreateVisualBrush(visualCanvas,
new RectangleF(0f, 0f, 10f, 10f), new RectangleF(0f, 0f, 10f, 10f));
((XpsVisualBrush)gridPath.Fill).TileMode = XpsTileMode.Tile;
// New canvas
XpsCanvas canvas = doc.AddCanvas();
canvas.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 268f, 70f);
// Add grid
canvas.AddPath(pathGeometry);
// Red transparent rectangle in the middle top
XpsPath path = canvas.AddPath(doc.CreatePathGeometry("M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"));
path = canvas.AddPath(doc.CreatePathGeometry("M 10,10 L 228,10 228,100 10,100"));
path.Fill = doc.CreateSolidColorBrush(doc.CreateColor(1.0f, 0.0f, 0.0f));
path.Opacity = 0.7f;
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Paint rectangle with horizontal gradient fill in XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/working-with-gradient/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "HorizontalGradient_outXPS.xps";
// Initialize List of XpsGradentStop
List<XpsGradientStop> stops = new List<XpsGradientStop>();
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 244, 253, 225), 0.0673828f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 251, 240, 23), 0.314453f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 252, 209, 0), 0.482422f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 241, 254, 161), 0.634766f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 53, 253, 255), 0.915039f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 12, 91, 248), 1f));
// Create new path by defining geometery in abbreviation form
XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,210 L 228,210 228,300 10,300"));
path.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 20f, 70f);
path.Fill = doc.CreateLinearGradientBrush(new PointF(10f, 0f), new PointF(228f, 0f));
((XpsGradientBrush)path.Fill).GradientStops.AddRange(stops);
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Add image to XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/working-with-images/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "AddImage_outXPS.xps";
// Add Image
XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"));
//Creating a matrix is optional, it can be used for proper positioning
path.RenderTransform = doc.CreateMatrix(0.7f, 0f, 0f, 0.7f, 0f, 20f);
//Create Image Brush
path.Fill = doc.CreateImageBrush(DataDir + "QL_logo_color.tif", new RectangleF(0f, 0f, 258.24f, 56.64f), new RectangleF(50f, 20f, 193.68f, 42.48f));
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Add Rectangle to XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/graphic-utilities/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "AddRectangleXPS_out.xps";
// CMYK (blue) solid color stroked rectangle in the lower left
XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 20,10 L 220,10 220,100 20,100 Z"));
path.Stroke = doc.CreateSolidColorBrush(
doc.CreateColor(DataDir + "uswebuncoated.icc", 1.0f, 1.000f, 0.000f, 0.000f, 0.000f));
path.StrokeThickness = 12f;
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Paint rectangle with tiled image (texture pattern) in XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/working-with-images/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "AddTextureTilingPattern_outXPS.xps";
// Tile image
// ImageBrush filled rectangle in the right top bellow
XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,160 L 228,160 228,305 10,305"));
path.Fill = doc.CreateImageBrush(DataDir + "R08LN_NN.jpg", new RectangleF(0f, 0f, 128f, 96f), new RectangleF(0f, 0f, 64f, 48f));
((XpsImageBrush)path.Fill).TileMode = XpsTileMode.Tile;
path.Fill.Opacity = 0.5f;
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Add text to XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/working-with-text/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "AddText_out.xps";
//Create a brush
XpsSolidColorBrush textFill = doc.CreateSolidColorBrush(Color.Black);
//Add glyph to the document
XpsGlyphs glyphs = doc.AddGlyphs("Arial", 12, FontStyle.Regular, 300f, 450f, "Hello World!");
glyphs.Fill = textFill;
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Demonstrates transparency in shapes in XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/working-with-transparency/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "AddTransparentObject_outXPS.xps";
// Just to demonstrate transparency
doc.AddPath(doc.CreatePathGeometry("M120,0 H400 v1000 H120")).Fill = doc.CreateSolidColorBrush(Color.Gray);
doc.AddPath(doc.CreatePathGeometry("M300,120 h600 V420 h-600")).Fill = doc.CreateSolidColorBrush(Color.Gray);
// Create path with closed rectangle geometry
XpsPath path1 = doc.CreatePath(doc.CreatePathGeometry("M20,20 h200 v200 h-200 z"));
// Set blue solid brush to fill path1
path1.Fill = doc.CreateSolidColorBrush(Color.Blue);
// Add it to the current page
XpsPath path2 = doc.Add(path1);
// path1 and path2 are the same as soon as path1 hasn't been placed inside any other element
// (which means that path1 had no parent element).
// Because of that rectangle's color on the page effectively turns to green
path2.Fill = doc.CreateSolidColorBrush(Color.Green);
// Now add path2 once again. Now path2 has parent. So path3 won't be the same as path2.
// Thus a new rectangle is painted on the page ...
XpsPath path3 = doc.Add(path2);
// ... and we shift it 300 units lower ...
path3.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 300);
// ... and set red solid brush to fill it
path3.Fill = doc.CreateSolidColorBrush(Color.Red);
// Create new path4 with path2's geometry ...
XpsPath path4 = doc.AddPath(path2.Data);
// ... shift it 300 units to the right ...
path4.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 300, 0);
// ... and set blue solid fill
path4.Fill = doc.CreateSolidColorBrush(Color.Blue);
// Add path4 once again.
XpsPath path5 = doc.Add(path4);
// path4 and path5 are not the same again ...
// (move path5 300 units lower)
path5.RenderTransform = path5.RenderTransform.Clone(); // to disconnect RenderTransform value from path4 (see next comment about Fill property)
path5.RenderTransform.Translate(0, 300);
// ... but if we set the opacity of Fill property, it will take effect on both path5 and path4
// because brush is a complex property value which remains the same for path5 and path4
path5.Fill.Opacity = 0.8f;
// Create new path6 with path2's geometry ...
XpsPath path6 = doc.AddPath(path2.Data);
// ... shift it 600 units to the right ...
path6.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 600, 0);
// ... and set yellow solid fill
path6.Fill = doc.CreateSolidColorBrush(Color.Yellow);
// Now add path6's clone ...
XpsPath path7 = doc.Add(path6.Clone());
// (move path5 300 units lower)
path7.RenderTransform = path7.RenderTransform.Clone();
path7.RenderTransform.Translate(0, 300);
// ... and set opacity for path7
path7.Fill.Opacity = 0.8f;
// Now opacity effects independantly as soon as property values are cloned along with the element
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Paint rectangle with vertical gradient fill in XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/working-with-gradient/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "VerticalGradient_outXPS.xps";
// Initialize List of XpsGradentStop
List<XpsGradientStop> stops = new List<XpsGradientStop>();
stops.Add(doc.CreateGradientStop(doc.CreateColor(253, 255, 12, 0), 0f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(252, 255, 154, 0), 0.359375f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(252, 255, 56, 0), 0.424805f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(253, 255, 229, 0), 0.879883f));
stops.Add(doc.CreateGradientStop(doc.CreateColor(252, 255, 255, 234), 1f));
// Create new path by defining geometery in abbreviation form
XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,110 L 228,110 228,200 10,200"));
path.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 20f, 70f);
path.Fill = doc.CreateLinearGradientBrush(new PointF(10f, 110f), new PointF(10f, 200f));
((XpsGradientBrush)path.Fill).GradientStops.AddRange(stops);
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Applying clips to the canvases in XPS document.
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "ApplyClips_outXPS.xps";
// Create main canvas, common for all page elemnts
XpsCanvas canvas1 = doc.AddCanvas();
// Make left and top offsets in the main canvas
canvas1.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 20, 10);
// Create rectangle path geometry
XpsPathGeometry rectGeom = doc.CreatePathGeometry("M 0,0 L 500,0 500,300 0,300 Z");
// Create a fill for rectangles
XpsBrush fill = doc.CreateSolidColorBrush(doc.CreateColor(12, 15, 159));
// Add another canvas with clip to the main canvas
XpsCanvas canvas2 = canvas1.AddCanvas();
// Create circle geometry for clip
XpsPathGeometry clipGeom = doc.CreatePathGeometry("M250,250 A100,100 0 1 1 250,50 100,100 0 1 1 250,250");
canvas2.Clip = clipGeom;
// Create rectangle in this canvas and fill it
XpsPath rect = canvas2.AddPath(rectGeom);
rect.Fill = fill;
// Add the second canvas with stroked rectangle to the main canvas
XpsCanvas canvas3 = canvas1.AddCanvas();
// Create rectangle in this canvas and stroke it
rect = canvas3.AddPath(rectGeom);
rect.Stroke = fill;
rect.StrokeThickness = 2;
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Using shape utilities for adding shapes to XPS document.
// Create new XPS Document
XpsDocument doc = new XpsDocument();
// ARGB solid color filled rectangle
XpsPath rect1 = doc.AddPath(doc.CreatePathGeometry("M 20,10 L 220,10 220,100 20,100 Z"));
rect1.Fill = doc.CreateSolidColorBrush(doc.CreateColor(Color.FromArgb(222, 12, 15, 159)));
// ARGB solid color filled rectangle, another way
XpsPath rect2 = doc.AddPath(doc.CreatePathGeometry("M 20,210 L 220,210 220,300 20,300 Z"));
rect2.Fill = doc.CreateSolidColorBrush(doc.CreateColor(222, 12, 15, 159));
// sRGB solid color filled rectangle
XpsPath rect3 = doc.AddPath(doc.CreatePathGeometry("M 20,410 L 220,410 220,500 20,500 Z"));
rect3.Fill = doc.CreateSolidColorBrush(doc.CreateColor(12, 15, 159));
// scRGB solid color filled rectangle
XpsPath rect4 = doc.AddPath(doc.CreatePathGeometry("M 20,610 L 220,610 220,700 20,700 Z"));
rect4.Fill = doc.CreateSolidColorBrush(doc.CreateColor(0.08706f, 0.04706f, 0.05882f, 0.62353f));
// CMYK (blue) solid color filled rectangle
XpsPath rect5 = doc.AddPath(doc.CreatePathGeometry("M 20,810 L 220,810 220,900 20,900 Z"));
rect5.Fill = doc.CreateSolidColorBrush(
doc.CreateColor(DataDir + "uswebuncoated.icc", 1.0f, 1.000f, 0.000f, 0.000f, 0.000f));
// Save resultant XPS document
doc.Save(OutputDir + "ApplyDifferentColorSpaces_outXPS.xps");
// Applying transformations to the canvases in XPS document.
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "ApplyTransforms_outXPS.xps";
// Create main canvas, common for all page elemnts
XpsCanvas canvas1 = doc.AddCanvas();
// Make left and top offsets in the main canvas
canvas1.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 20, 10);
// Create rectangle path geometry
XpsPathGeometry rectGeom = doc.CreatePathGeometry("M 0,0 L 200,0 200,100 0,100 Z");
// Create a fill for rectangles
XpsBrush fill = doc.CreateSolidColorBrush(doc.CreateColor(12, 15, 159));
// Add new canvas without any transformations to the main canvas
XpsCanvas canvas2 = canvas1.AddCanvas();
// Create rectangle in this canvas and fill it
XpsPath rect = canvas2.AddPath(rectGeom);
rect.Fill = fill;
// Add new canvas with translate transformation to the main canvas
XpsCanvas canvas3 = canvas1.AddCanvas();
// Translate this canvas to position new rectangle below previous rectnagle
canvas3.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 200);
// Translate this canvas to right side of page
canvas3.RenderTransform.Translate(500, 0);
// Create rectangle in this canvas and fill it
rect = canvas3.AddPath(rectGeom);
rect.Fill = fill;
// Add new canvas with double scale transformation to the main canvas
XpsCanvas canvas4 = canvas1.AddCanvas();
// Translate this canvas to position new rectangle below previous rectnagle
canvas4.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 400);
// Scale this canvas
canvas4.RenderTransform.Scale(2, 2);
// Create rectangle in this canvas and fill it
rect = canvas4.AddPath(rectGeom);
rect.Fill = fill;
// Add new canvas with rotation around a point transformation to the main canvas
XpsCanvas canvas5 = canvas1.AddCanvas();
// Translate this canvas to position new rectangle below previous rectnagle
canvas5.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 800);
// Rotate this canvas aroud a point on 45 degrees
canvas5.RenderTransform.RotateAround(45, new PointF(100, 50));
rect = canvas5.AddPath(rectGeom);
rect.Fill = fill;
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Change direction of text from left-to-right to right-to-left, as in Hebrew or Arabic texts, in XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/working-with-text/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "AddTextRTL_out.xps";
// Add Text
XpsSolidColorBrush textFill = doc.CreateSolidColorBrush(Color.Black);
XpsGlyphs glyphs = doc.AddGlyphs("Arial", 20, FontStyle.Regular, 400f, 200f, "TEN. rof SPX.esopsA");
//Change direction of text from left-to-right to right-to-left
glyphs.BidiLevel = 1;
glyphs.Fill = textFill;
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Apply opacity mask for texture pattern in XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/working-with-transparency/
// Create new XPS Document
XpsDocument doc = new XpsDocument();
string outputFileName = "OpacityMask_out.xps";
//Add Canvas to XpsDocument instance
XpsCanvas canvas = doc.AddCanvas();
// Rectangle with opacity masked by ImageBrush
XpsPath path = canvas.AddPath(doc.CreatePathGeometry("M 10,180 L 228,180 228,285 10,285"));
path.Fill = doc.CreateSolidColorBrush(doc.CreateColor(1.0f, 0.0f, 0.0f));
path.OpacityMask = doc.CreateImageBrush(DataDir + "R08SY_NN.tif", new RectangleF(0f, 0f, 128f, 192f),
new RectangleF(0f, 0f, 64f, 96f));
((XpsImageBrush)path.OpacityMask).TileMode = XpsTileMode.Tile;
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
// Using image utilities for adding images to XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/graphic-utilities/
string outputFileName = "UseImageUtilsXPS_out.xps";
// Create new XPS Document
using (XpsDocument doc = new XpsDocument())
{
// Set first page's size.
doc.Page.Width = 540f;
doc.Page.Height = 220f;
// Draw the image box.
RectangleF imageBox = new RectangleF(10f, 10f, 200f, 200f);
XpsPath path = doc.AddPath(doc.Utils.CreateRectangle(imageBox));
path.Stroke = doc.CreateSolidColorBrush(Color.Black);
// Add an image to fit width.
path = doc.Utils.CreateImage(DataDir + "R08LN_NN.jpg", imageBox, ImageMode.FitToWidth);
// Prevent tiling.
((XpsImageBrush)path.Fill).TileMode = XpsTileMode.None;
doc.Add(path);
// Add an image to fit width.
doc.Add(doc.Utils.CreateImage(DataDir + "R08LN_NN.jpg", new RectangleF(220f, 10f, 200f, 100f), ImageMode.FitToHeight));
// Add an image to fit width.
doc.Add(doc.Utils.CreateImage(DataDir + "R08LN_NN.jpg", new RectangleF(430f, 10f, 100f, 200f), ImageMode.FitToBox));
// Save resultant XPS document
doc.Save(OutputDir + outputFileName);
}
// Using shape utilities for adding shapes to XPS document.
// Learn more: https://docs.aspose.com/page/net/xps/graphic-utilities/
string outputFileName = "UseShapeUtilsXPS_out.xps";
// Create new XPS Document
using (XpsDocument doc = new XpsDocument())
{
// Set first page's size.
doc.Page.Width = 650f;
doc.Page.Height = 240f;
// Draw a circle with center (120, 120) and radius 100.
XpsPath path = doc.CreatePath(doc.Utils.CreateCircle(new PointF(120f, 120f), 100f));
path.Fill = doc.CreateSolidColorBrush(Color.Green);
doc.Add(path);
// Inscribe a regular pentagon in the circle.
path = doc.CreatePath(doc.Utils.CreateRegularInscribedNGon(5, new PointF(120f, 120f), 100f));
path.Fill = doc.CreateSolidColorBrush(Color.Red);
doc.Add(path);
// Circumscribe a regular hexagon around the circle.
path = doc.CreatePath(doc.Utils.CreateRegularCircumscribedNGon(6, new PointF(120f, 120f), 100f));
path.Stroke = doc.CreateSolidColorBrush(Color.Magenta);
path.StrokeThickness = 3f;
doc.Add(path);
// Draw a sector of the circle centered at (340, 120), starting at -45 degrees and ending at +45 degrees.
path = doc.CreatePath(doc.Utils.CreatePieSlice(new PointF(340f, 120f), 100f, -45f, 45f));
path.Stroke = doc.CreateSolidColorBrush(Color.Red);
path.StrokeThickness = 5f;
doc.Add(path);
// Draw a segment of the circle centered at (340, 120), starting at -45 degrees and ending at +45 degrees.
path = doc.CreatePath(doc.Utils.CreateCircularSegment(new PointF(340f, 120f), 100f, -45f, 45f));
path.Fill = doc.CreateSolidColorBrush(Color.Black);
doc.Add(path);
// Draw a rectangle with the top left vertex (530, 20), width 100 units and height 200 units.
path = doc.CreatePath(doc.Utils.CreateRectangle(new RectangleF(530f, 20f, 100f, 200f)));
path.Stroke = doc.CreateSolidColorBrush(Color.Red);
doc.Add(path);
// Draw an ellipse with center (580, 120) and radii 50 and 100.
path = doc.CreatePath(doc.Utils.CreateEllipse(new PointF(580f, 120f), 50f, 100f));
path.Fill = doc.CreateSolidColorBrush(Color.Yellow);
doc.Add(path);
doc.Save(OutputDir + outputFileName);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment