Document .Net does not natively store the concept of pages. However, it is often necessary to store information about a page or group of pages with their setup. For this purpose, there is a Section notion.
Section is a collection of Block elements that are grouped by a unify page properties concept and having specific headers and footers.
You may find the Section node at the Document Tree Structure to understand its purpose.
As you may see from the picture each Section represents a group of Block elements (Paragraph, Table , TableOfEntries) having the same page layout. There is no page notion and we don't know the page count at once after loading or creation of a document:
Document .Net can divide the document into pages, this process names Pagination
Pagination is the process of dividing a document into discrete pages.
Thus, after the Pagination process you will know the number of pages in the document and where the specific content is placed. It can be helpful in creation of a document viewer application, printing, rasterizing etc.
After the launching Pagination:
Complete code
using System;
using SautinSoft.Document;
namespace Example
{
class Program
{
static void Main(string[] args)
{
// Get your free 100-day key here:
// https://sautinsoft.com/start-for-free/
Sections();
}
/// <summary>
/// Creates a document with different sections.
/// </summary>
/// <remarks>
/// Details: https://sautinsoft.com/products/document/help/net/developer-guide/sections-and-page-layout.php
/// </remarks>
static void Sections()
{
string documentPath = @"Sections.docx";
// Let's create a simple document with two Sections.
DocumentCore dc = new DocumentCore();
// First Section, A4 - Portrait.
Section s1 = new Section(dc);
s1.PageSetup.PaperType = PaperType.A4;
s1.PageSetup.Orientation = Orientation.Portrait;
dc.Sections.Add(s1);
// Add some text into section 1.
s1.Content.Start.Insert("Text in section 1", new CharacterFormat() { FontName = "Times New Roman", Size = 60.0 });
// Second Section, Letter - Landscape.
Section s2 = new Section(dc);
s2.PageSetup.PaperType = PaperType.Letter;
s2.PageSetup.Orientation = Orientation.Landscape;
dc.Sections.Add(s2);
// Add some text into section 2.
s2.Content.Start.Insert("Text in section 2", new CharacterFormat() { FontName = "Arial", Size = 72.0, FontColor = new Color("DD55AA") });
// Save our document into 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
Module Sample
Sub Main()
Sections()
End Sub
''' Get your free 100-day key here:
''' https://sautinsoft.com/start-for-free/
''' <summary>
''' Creates a document with different sections.
''' </summary>
''' <remarks>
''' Details: https://sautinsoft.com/products/document/help/net/developer-guide/sections-and-page-layout.php
''' </remarks>
Sub Sections()
Dim documentPath As String = "Sections.docx"
' Let's create a simple document with two Sections.
Dim dc As New DocumentCore()
' First Section, A4 - Portrait.
Dim s1 As New Section(dc)
s1.PageSetup.PaperType = PaperType.A4
s1.PageSetup.Orientation = Orientation.Portrait
dc.Sections.Add(s1)
' Add some text into section 1.
s1.Content.Start.Insert("Text in section 1", New CharacterFormat() With {
.FontName = "Times New Roman",
.Size = 60.0
})
' Second Section, Letter - Landscape.
Dim s2 As New Section(dc)
s2.PageSetup.PaperType = PaperType.Letter
s2.PageSetup.Orientation = Orientation.Landscape
dc.Sections.Add(s2)
' Add some text into section 2.
s2.Content.Start.Insert("Text in section 2", New CharacterFormat() With {
.FontName = "Arial",
.Size = 72.0,
.FontColor = New Color("DD55AA")
})
' Save our document into 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
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: