Textbox in Word can be considered as
a special shape. We could set its size, position, line style, internal margin, and
fill effects. Besides, we could customize the inside text and image with
specific font, alignment, spacing, hyperlink etc. to beautify textbox’s layout.
Plain text like the following picture looks dull and a text box will certainly
make it more attractive. So, let’s start.
Please
Download it from Nuget and add the .dll in the bin folder as the reference of
Visual Studio. This library can run independently on all .NET platforms with no
need of MS Office installed. But the free version is limited to 100 paragraphs and 5 tables with 3 pages conversion limits. It's enough for some small project.

Using the code
Step1: Load the sample .docx file that
only contains text (the above picture is its screenshot).
Document document = new Document();
document.LoadFromFile("Sample.docx");
Step 2: Insert
a textbox into Word and set its specific position. Please note that we need to
use the specific paragraph to lock it on the specific page and then set its
position in the page anchored by its horizontal and vertical distance from the
page, margin etc. By doing this, the
position of textbox is fixed.
TextBox TB = document.Sections[0].Paragraphs[0].AppendTextBox(150, 315);
TB.Format.HorizontalOrigin = HorizontalOrigin.Page;
TB.Format.HorizontalPosition = 390;
TB.Format.VerticalOrigin = VerticalOrigin.Page;
TB.Format.VerticalPosition = 80;
Step 3: Another
factor that influences the position lies in the layout between textbox and surrounding
text, namely text wrapping. This step is setting the wrapping style.
TB.Format.TextWrappingStyle = TextWrappingStyle.Square;
TB.Format.TextWrappingType = TextWrappingType.Both;
Step 4: Set the
line style, internal margin and fill effects for the textbox. Fill effects
means the background style of the textbox. We could fill with solid color,
gradient and picture. Here I choose the image fill.
TB.Format.LineStyle = TextBoxLineStyle.Double;
TB.Format.LineColor = Color.Black;
TB.Format.LineDashing = LineDashing.Solid;
TB.Format.LineWidth = 3;
TB.Format.InternalMargin.Top = 15;
TB.Format.InternalMargin.Bottom = 10;
TB.Format.InternalMargin.Left = 12;
TB.Format.InternalMargin.Right = 10;
TB.Format.FillEfects.Type = BackgroundType.Picture;
TB.Format.FillEfects.Picture = Image.FromFile("2.jpg");
Step 5: Add
three paragraphs to the textbox with text, image, and text with hyperlink respectively.
When we add a picture, we could crop the picture by setting its width and
height to best fit the layout. This step also shows elements like alignment,
font, and spacing.
Paragraph para1 = TB.Body.AddParagraph();
para1.Format.AfterSpacing = 6;
para1.Format.HorizontalAlignment = HorizontalAlignment.Center;
TextRange TR1 = para1.AppendText("William Shakespeare");
TR1.CharacterFormat.FontName = "Andalus";
TR1.CharacterFormat.FontSize = 12;
TR1.CharacterFormat.TextColor = Color.DarkBlue;
Paragraph para2 = TB.Body.AddParagraph();
Image image = Image.FromFile("shakespeare.jpg");
DocPicture picture = para2.AppendPicture(image);
picture.Width = 120;
picture.Height = 160;
para2.Format.AfterSpacing = 8;
para2.Format.HorizontalAlignment = HorizontalAlignment.Center;
Paragraph para3 = TB.Body.AddParagraph();
TextRange TR2 = para3.AppendText("(26 Apr.1564–23 Apr.1616) English poet, playwright, and actor, widely regarded as the greatest writer in the English language and the world's pre-eminent dramatist.");
TR2.CharacterFormat.FontName = "Cambria";
TR2.CharacterFormat.FontSize = 9;
para3.Format.LineSpacing = 15;
para3.Format.HorizontalAlignment = HorizontalAlignment.Left;
para3.Format.SuppressAutoHyphens = true;
para3.AppendHyperlink("https://en.wikipedia.org/wiki/William_Shakespeare",
" See Also", HyperlinkType.WebLink);
Step 6:
Save and launch the document. We’ll get what we’ve achieved.
document.SaveToFile("Result.docx");
System.Diagnostics.Process.Start("Result.docx");

My full code to achieve this:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Spire.Doc;
using Spire.Doc.Fields;
using Spire.Doc.Documents;
using System.Drawing;
namespace textbox
{
class Program
{
static void Main(string[] args)
{
Document document = new Document();
document.LoadFromFile("Sample.docx");
TextBox TB = document.Sections[0].Paragraphs[0].AppendTextBox(150, 315);
TB.Format.HorizontalOrigin = HorizontalOrigin.Page;
TB.Format.HorizontalPosition = 390;
TB.Format.VerticalOrigin = VerticalOrigin.Page;
TB.Format.VerticalPosition = 80;
TB.Format.TextWrappingStyle = TextWrappingStyle.Square;
TB.Format.TextWrappingType = TextWrappingType.Both;
TB.Format.LineStyle = TextBoxLineStyle.Double;
TB.Format.LineColor = Color.Black;
TB.Format.LineDashing = LineDashing.Solid;
TB.Format.LineWidth = 3;
TB.Format.InternalMargin.Top = 15;
TB.Format.InternalMargin.Bottom = 10;
TB.Format.InternalMargin.Left = 12;
TB.Format.InternalMargin.Right = 10;
TB.Format.FillEfects.Type = BackgroundType.Picture;
TB.Format.FillEfects.Picture = Image.FromFile("2.jpg");
Paragraph para1 = TB.Body.AddParagraph();
para1.Format.AfterSpacing = 6;
para1.Format.HorizontalAlignment = HorizontalAlignment.Center;
TextRange TR1 = para1.AppendText("William Shakespeare");
TR1.CharacterFormat.FontName = "Andalus";
TR1.CharacterFormat.FontSize = 12;
TR1.CharacterFormat.TextColor = Color.DarkBlue;
Paragraph para2 = TB.Body.AddParagraph();
Image image = Image.FromFile("shakespeare.jpg");
DocPicture picture = para2.AppendPicture(image);
picture.Width = 120;
picture.Height = 160;
para2.Format.AfterSpacing = 8;
para2.Format.HorizontalAlignment = HorizontalAlignment.Center;
Paragraph para3 = TB.Body.AddParagraph();
TextRange TR2 = para3.AppendText("(26 Apr.1564–§C23 Apr.1616) English poet, playwright, and actor, widely regarded as the greatest writer in the English language and the world's pre-eminent dramatist.");
TR2.CharacterFormat.FontName = "Cambria";
TR2.CharacterFormat.FontSize = 9;
para3.Format.LineSpacing = 15;
para3.Format.HorizontalAlignment = HorizontalAlignment.Left;
para3.Format.SuppressAutoHyphens = true;
para3.AppendHyperlink("https://en.wikipedia.org/wiki/William_Shakespeare", "See Also", HyperlinkType.WebLink);
document.SaveToFile("Result.docx");
System.Diagnostics.Process.Start("Result.docx");
}
}
}
Thanks for reading and hope you
could benefit from this article.