In this code example, we create a new document with a shape that contains text and an image.
Complete code
using SautinSoft.Document;
using SautinSoft.Document.Drawing;
namespace Example
{
class Program
{
static void Main(string[] args)
{
// Get your free 100-day key here:
// https://sautinsoft.com/start-for-free/
PictureAndShape();
}
/// <summary>
/// Creates a new document with shape containing a text and picture.
/// </summary>
/// <remarks>
/// Details: https://sautinsoft.com/products/document/help/net/developer-guide/pictures-and-shapes.php
/// </remarks>
static void PictureAndShape()
{
string filePath = @"Shape.docx";
string imagePath = @"..\..\..\image.jpg";
DocumentCore dc = new DocumentCore();
// 1. Shape with text.
Shape shapeWithText = new Shape(dc, Layout.Floating(new HorizontalPosition(1, LengthUnit.Inch, HorizontalPositionAnchor.Page),
new VerticalPosition(2, LengthUnit.Inch, VerticalPositionAnchor.Page),
new Size(LengthUnitConverter.Convert(6, LengthUnit.Inch, LengthUnit.Point), LengthUnitConverter.Convert(1.5d, LengthUnit.Centimeter, LengthUnit.Point))));
(shapeWithText.Layout as FloatingLayout).WrappingStyle = WrappingStyle.InFrontOfText;
shapeWithText.Text.Blocks.Add(new Paragraph(dc, new Run(dc, "This is the text in shape.", new CharacterFormat() { Size = 30})));
shapeWithText.Outline.Fill.SetEmpty();
shapeWithText.Fill.SetSolid(Color.Orange);
dc.Content.End.Insert(shapeWithText.Content);
// 2. Picture with FloatingLayout:
// Floating layout means that the Picture (or Shape) is positioned by coordinates.
Picture pic = new Picture(dc, imagePath);
pic.Layout = FloatingLayout.Floating(
new HorizontalPosition(50, LengthUnit.Millimeter, HorizontalPositionAnchor.Page),
new VerticalPosition(20, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin),
new Size(LengthUnitConverter.Convert(10, LengthUnit.Centimeter, LengthUnit.Point),
LengthUnitConverter.Convert(10, LengthUnit.Centimeter, LengthUnit.Point))
);
// Set the wrapping style.
(pic.Layout as FloatingLayout).WrappingStyle = WrappingStyle.BehindText;
// Add our picture into the section.
dc.Content.End.Insert(pic.Content);
dc.Save(filePath);
// Show the result.
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(filePath) { UseShellExecute = true });
}
}
}
Imports System
Imports System.IO
Imports SautinSoft.Document
Imports SautinSoft.Document.Drawing
Module Sample
Sub Main()
PictureAndShape()
End Sub
''' Get your free 100-day key here:
''' https://sautinsoft.com/start-for-free/
''' <summary>
''' Creates a new document with shape containing a text and picture.
''' </summary>
''' <remarks>
''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/pictures-and-shapes.php
''' </remarks>
Sub PictureAndShape()
Dim filePath As String = "Shape.docx"
Dim imagePath As String = "..\..\..\image.jpg"
Dim dc As New DocumentCore()
' 1. Shape with text.
Dim shapeWithText As New Shape(dc, Layout.Floating(New HorizontalPosition(1, LengthUnit.Inch, HorizontalPositionAnchor.Page), New VerticalPosition(2, LengthUnit.Inch, VerticalPositionAnchor.Page), New Size(LengthUnitConverter.Convert(6, LengthUnit.Inch, LengthUnit.Point), LengthUnitConverter.Convert(1.5R, LengthUnit.Centimeter, LengthUnit.Point))))
TryCast(shapeWithText.Layout, FloatingLayout).WrappingStyle = WrappingStyle.InFrontOfText
shapeWithText.Text.Blocks.Add(New Paragraph(dc, New Run(dc, "This is the text in shape.", New CharacterFormat() With {.Size = 30})))
shapeWithText.Outline.Fill.SetEmpty()
shapeWithText.Fill.SetSolid(Color.Orange)
dc.Content.End.Insert(shapeWithText.Content)
' 2. Picture with FloatingLayout:
' Floating layout means that the Picture (or Shape) is positioned by coordinates.
Dim pic As New Picture(dc, imagePath)
pic.Layout = FloatingLayout.Floating(New HorizontalPosition(50, LengthUnit.Millimeter, HorizontalPositionAnchor.Page), New VerticalPosition(20, LengthUnit.Millimeter, VerticalPositionAnchor.TopMargin), New Size(LengthUnitConverter.Convert(10, LengthUnit.Centimeter, LengthUnit.Point), LengthUnitConverter.Convert(10, LengthUnit.Centimeter, LengthUnit.Point)))
' Set the wrapping style.
TryCast(pic.Layout, FloatingLayout).WrappingStyle = WrappingStyle.BehindText
' Add our picture into the section.
dc.Content.End.Insert(pic.Content)
dc.Save(filePath)
' Show the result.
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(filePath) With {.UseShellExecute = True})
End Sub
End Module
If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below: