ShapeGeometry Property |
See Developer Guide: This sample shows how to work with shapes and geometry
using System; using System.IO; using SautinSoft.Document; using SautinSoft.Document.Drawing; namespace Sample { class Sample { static void Main(string[] args) { // Get your free 100-day key here: // https://sautinsoft.com/start-for-free/ Geometry(); } /// <summary> /// This sample shows how to work with shapes and geometry. /// </summary> /// <remarks> /// Details: https://sautinsoft.com/products/document/help/net/developer-guide/geometry.php /// </remarks> public static void Geometry() { string pictPath = @"..\..\..\image1.jpg"; string documentPath = @"Geometry.docx"; // Let's create a new document. DocumentCore dc = new DocumentCore(); // Create shape 1 with preset geometry (Smiley Face). Shape shp1 = new Shape(dc, Layout.Floating( new HorizontalPosition(20f, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin), new VerticalPosition(80f, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin), new Size(100, 100) )); // Specify outline and fill. shp1.Outline.Fill.SetSolid(new Color("358CCB")); shp1.Outline.Width = 3; shp1.Fill.SetSolid(Color.Orange); // Specify a figure. shp1.Geometry.SetPreset(Figure.SmileyFace); // Create shape 2 with custom geometry path (using points array). Shape shp2 = new Shape(dc, Layout.Floating( new HorizontalPosition(85f, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin), new VerticalPosition(80f, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin), new Size(100, 100) )); // Specify outline and fill using a picture. shp2.Outline.Fill.SetSolid(Color.Green); shp2.Outline.Width = 2; // Set the picture as fill for this shape. shp2.Fill.SetPicture(pictPath); // Specify the maximum X and Y coordinates that should be used // for within the path coordinate system. Size size = new Size(1, 1); // Specify the path points (draw a circle of 10 points). Point[] points = new Point[10]; double a = 0; for (int i = 0; i < 10; ++i) { points[i] = new Point(0.5 + Math.Sin(a) * 0.5, 0.5 + Math.Cos(a) * 0.5); a += 2 * Math.PI / 10; } // Create and add new custom path from specified points array. shp2.Geometry.SetCustom().AddPath(size, points, true); // Create shape3 with custom geometry path (using path elements). Shape shp3 = new Shape(dc, Layout.Floating( new HorizontalPosition(150f, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin), new VerticalPosition(80f, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin), new Size(100, 100) )); // Specify outline and fill. shp3.Outline.Fill.SetSolid(new Color(255,0,0)); shp3.Outline.Width = 2; shp3.Fill.SetSolid(Color.Yellow); // Create and add new custom path. CustomPath path = shp3.Geometry.SetCustom().AddPath(new Size(1, 1)); // Specify path elements. path.MoveTo(new Point(0, 0)); path.AddLine(new Point(0, 1)); path.AddLine(new Point(1, 1)); path.AddLine(new Point(1, 0)); path.ClosePath(); // Add drawing elements to document. dc.Content.End.Insert(shp1.Content); dc.Content.End.Insert(shp2.Content); dc.Content.End.Insert(shp3.Content); // Save the document to DOCX format. dc.Save(documentPath); // Open the result for demonstration purposes. System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(documentPath) { UseShellExecute = true }); } } }
Imports System Imports System.IO Imports SautinSoft.Document Imports SautinSoft.Document.Drawing Module Sample Sub Main() Geometry() End Sub ''' Get your free 100-day key here: ''' https://sautinsoft.com/start-for-free/ ''' <summary> ''' This sample shows how to work with shapes and geometry. ''' </summary> ''' <remarks> ''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/geometry.php ''' </remarks> Sub Geometry() Dim pictPath As String = "..\..\..\image1.jpg" Dim documentPath As String = "Geometry.docx" ' Let's create a new document. Dim dc As New DocumentCore() ' Create shape 1 with preset geometry (Smiley Face). Dim shp1 As New Shape(dc, Layout.Floating(New HorizontalPosition(20.0F, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin), New VerticalPosition(80.0F, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin), New Size(100, 100))) ' Specify outline and fill. shp1.Outline.Fill.SetSolid(New Color("358CCB")) shp1.Outline.Width = 3 shp1.Fill.SetSolid(Color.Orange) ' Specify a figure. shp1.Geometry.SetPreset(Figure.SmileyFace) ' Create shape 2 with custom geometry path (using points array). Dim shp2 As New Shape(dc, Layout.Floating(New HorizontalPosition(85.0F, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin), New VerticalPosition(80.0F, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin), New Size(100, 100))) ' Specify outline and fill using a picture. shp2.Outline.Fill.SetSolid(Color.Green) shp2.Outline.Width = 2 ' Set the picture as fill for this shape. shp2.Fill.SetPicture(pictPath) ' Specify the maximum X and Y coordinates that should be used ' for within the path coordinate system. Dim size As New Size(1, 1) ' Specify the path points (draw a circle of 10 points). Dim points(9) As Point Dim a As Double = 0 For i As Integer = 0 To 9 points(i) = New Point(0.5 + Math.Sin(a) * 0.5, 0.5 + Math.Cos(a) * 0.5) a += 2 * Math.PI / 10 Next i ' Create and add new custom path from specified points array. shp2.Geometry.SetCustom().AddPath(size, points, True) ' Create shape3 with custom geometry path (using path elements). Dim shp3 As New Shape(dc, Layout.Floating(New HorizontalPosition(150.0F, LengthUnit.Millimeter, HorizontalPositionAnchor.LeftMargin), New VerticalPosition(80.0F, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin), New Size(100, 100))) ' Specify outline and fill. shp3.Outline.Fill.SetSolid(New Color(255, 0, 0)) shp3.Outline.Width = 2 shp3.Fill.SetSolid(Color.Yellow) ' Create and add new custom path. Dim path As CustomPath = shp3.Geometry.SetCustom().AddPath(New Size(1, 1)) ' Specify path elements. path.MoveTo(New Point(0, 0)) path.AddLine(New Point(0, 1)) path.AddLine(New Point(1, 1)) path.AddLine(New Point(1, 0)) path.ClosePath() ' Add drawing elements to document. dc.Content.End.Insert(shp1.Content) dc.Content.End.Insert(shp2.Content) dc.Content.End.Insert(shp3.Content) ' Save the document to DOCX format. dc.Save(documentPath) ' Open the result for demonstration purposes. System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(documentPath) With {.UseShellExecute = True}) End Sub End Module