Let's create a simple DOCX document with two paragraphs and some formatted text, like a shown on picture:
using SautinSoft.Document;
DocumentCore dc = new DocumentCore();
DocumentCore is root class, it represents a document itself.
Section section = new Section(dc);
dc.Sections.Add(section);
Section is a collection of Block elements that are grouped by a unify page properties concept and having specific headers and footers.
// Way 1: Add 1st paragraph.
Paragraph par1 = new Paragraph(dc);
par1.ParagraphFormat.Alignment = HorizontalAlignment.Center;
section.Blocks.Add(par1);
// Let's create a characterformat for text in the 1st paragraph.
CharacterFormat cf = new CharacterFormat() { FontName = "Verdana", Size = 16, FontColor = Color.Orange };
Run text1 = new Run(dc, "This is a first line in 1st paragraph!");
text1.CharacterFormat = cf;
par1.Inlines.Add(text1);
// Let's add a line break into our paragraph.
par1.Inlines.Add(new SpecialCharacter(dc, SpecialCharacterType.LineBreak));
Run text2 = text1.Clone();
text2.Text = "Let's type a second line.";
par1.Inlines.Add(text2);
Paragraph is a Block derived element used to group Inline elements like a Run, Shape, Picture, Field etc.
Run (Inline derived) is a container for one or more text characters having the same character formatting.
// Way 2 (easy): Add 2nd paragraph using ContentRange.
dc.Content.End.Insert("\nThis is a first line in 2nd paragraph.", new CharacterFormat() { Size = 25, FontColor = Color.Blue, Bold = true });
SpecialCharacter lBr = new SpecialCharacter(dc, SpecialCharacterType.LineBreak);
dc.Content.End.Insert(lBr.Content);
dc.Content.End.Insert("This is a second line.", new CharacterFormat() { Size = 20, FontColor = Color.DarkGreen, UnderlineStyle = UnderlineType.Single });
ContentRange represents an area in document as a contiguous sequence of characters boundend by start and end positions. It allows to insert and extract data in a streaming manner in(from) desired positions.
// Save DOCX to a file
dc.Save(@"d:\Result.docx", new DocxSaveOptions());
or save to a MemoryStream:
// Save DOCX to a MemoryStream
using (MemoryStream docxStream = new MemoryStream())
{
dc.Save(docxStream, new DocxSaveOptions());
// To do something with docxStream ...
}
As you notice, here we've explicitly specified DocxSaveOptions as the second parameter.
Here you may find more details how to Save a document in DOCX format.
Well done!
using SautinSoft.Document;
namespace Example
{
class Program
{
static void Main(string[] args)
{
CreateDocx();
}
/// <summary>
/// Creates a new document and saves it into DOCX format.
/// </summary>
/// <remarks>
/// Details: https://sautinsoft.com/products/document/examples/create-docx-document-net-csharp-vb.php
/// </remarks>
public static void CreateDocx()
{
// Set a path to our document.
string docPath = @"Result.docx";
// Let's create a simple document.
DocumentCore dc = new DocumentCore();
// Add new section.
Section section = new Section(dc);
dc.Sections.Add(section);
// Let's set page size A4.
section.PageSetup.PaperType = PaperType.A4;
// Add two paragraphs using different ways:
// Way 1: Add 1st paragraph.
Paragraph par1 = new Paragraph(dc);
par1.ParagraphFormat.Alignment = HorizontalAlignment.Center;
section.Blocks.Add(par1);
// Let's create a characterformat for text in the 1st paragraph.
CharacterFormat cf = new CharacterFormat() { FontName = "Verdana", Size = 16, FontColor = Color.Orange };
Run text1 = new Run(dc, "This is a first line in 1st paragraph!");
text1.CharacterFormat = cf;
par1.Inlines.Add(text1);
// Let's add a line break into our paragraph.
par1.Inlines.Add(new SpecialCharacter(dc, SpecialCharacterType.LineBreak));
Run text2 = text1.Clone();
text2.Text = "Let's type a second line.";
par1.Inlines.Add(text2);
// Way 2 (easy): Add 2nd paragraph using ContentRange.
dc.Content.End.Insert("\nThis is a first line in 2nd paragraph.", new CharacterFormat() { Size = 25, FontColor = Color.Blue, Bold = true });
SpecialCharacter lBr = new SpecialCharacter(dc, SpecialCharacterType.LineBreak);
dc.Content.End.Insert(lBr.Content);
dc.Content.End.Insert("This is a second line.", new CharacterFormat() { Size = 20, FontColor = Color.DarkGreen, UnderlineStyle = UnderlineType.Single });
// Save a document to a file into DOCX format.
dc.Save(docPath, new DocxSaveOptions());
// Open the result for demonstration purposes.
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(docPath) { UseShellExecute = true });
}
}
}
Imports SautinSoft.Document
Module Sample
Sub Main()
CreateDocx()
End Sub
''' <summary>
''' Creates a new document and saves it into DOCX format.
''' </summary>
''' <remarks>
''' Details: https://sautinsoft.com/products/document/examples/create-docx-document-net-csharp-vb.php
''' </remarks>
Sub CreateDocx()
' Set a path to our document.
Dim docPath As String = "Result.docx"
' Let's create a simple document.
Dim dc As New DocumentCore()
' Add new section.
Dim section As New Section(dc)
dc.Sections.Add(section)
' Let's set page size A4.
section.PageSetup.PaperType = PaperType.A4
' Add two paragraphs using different ways:
' Way 1: Add 1st paragraph.
Dim par1 As New Paragraph(dc)
par1.ParagraphFormat.Alignment = HorizontalAlignment.Center
section.Blocks.Add(par1)
' Let's create a characterformat for text in the 1st paragraph.
Dim cf As New CharacterFormat() With {
.FontName = "Verdana",
.Size = 16,
.FontColor = Color.Orange
}
Dim text1 As New Run(dc, "This is a first line in 1st paragraph!")
text1.CharacterFormat = cf
par1.Inlines.Add(text1)
' Let's add a line break into our paragraph.
par1.Inlines.Add(New SpecialCharacter(dc, SpecialCharacterType.LineBreak))
Dim text2 As Run = text1.Clone()
text2.Text = "Let's type a second line."
par1.Inlines.Add(text2)
' Way 2 (easy): Add 2nd paragraph using ContentRange.
dc.Content.End.Insert(vbLf & "This is a first line in 2nd paragraph.", New CharacterFormat() With {
.Size = 25,
.FontColor = Color.Blue,
.Bold = True
})
Dim lBr As New SpecialCharacter(dc, SpecialCharacterType.LineBreak)
dc.Content.End.Insert(lBr.Content)
dc.Content.End.Insert("This is a second line.", New CharacterFormat() With {
.Size = 20,
.FontColor = Color.DarkGreen,
.UnderlineStyle = UnderlineType.Single
})
' Save a document to a file into DOCX format.
dc.Save(docPath, New DocxSaveOptions())
' Open the result for demonstration purposes.
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(docPath) 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: