''
'' This code is part of Document Solutions for Word demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Word
'' Shows how to create a document with multi-column layout.
Public Class Columns
Public Function CreateDocx() As GcWordDocument
Dim Inch As Single = 72
Dim doc = New GcWordDocument()
Dim sec1 = doc.Body.Sections.First
sec1.PageSetup.TextColumns.Add()
Dim pars1 = sec1.GetRange().Paragraphs
pars1.Add("Section 1, Paragraph 1: " + LoremIpsumPar())
pars1.Add("Section 1, Paragraph 2: " + LoremIpsumPar())
pars1.Add("Section 1, Paragraph 3: " + LoremIpsumPar())
Dim sec2 = doc.Body.Paragraphs.Last.AddSectionBreak()
sec2.PageSetup.Margin.Left = Inch / 2
sec2.PageSetup.Margin.Right = Inch / 2
sec2.PageSetup.Margin.Top = Inch / 2
sec2.PageSetup.Margin.Bottom = Inch / 2
'' For the 2nd section, change page orientation:
sec2.PageSetup.Size.Orientation = PageOrientation.Landscape
'' Add 3 manually laid out columns:
'' - First is 2" wide
'' - 2nd and 3rd equally sharing the remaining space
Dim pw = sec2.PageSetup.ClientWidth
Dim space = sec2.PageSetup.TextColumns(0).SpaceAfter
Dim c0w = Inch * 2
Dim cw = (pw - c0w - space * 2) / 2
sec2.PageSetup.TextColumns(0).Width = Inch * 2
sec2.PageSetup.TextColumns.Add(cw)
sec2.PageSetup.TextColumns.Add(cw)
Dim pars2 = sec2.GetRange().Paragraphs
pars2.Add("Section 2, Paragraph 1 followed by a column break.")
pars2.Last.GetRange().Runs.Last.GetRange().Texts.AddBreak(BreakType.Column)
pars2.Add("Section 2, Paragraph 2: " + LoremIpsumPar())
pars2.Add("Section 2, Paragraph 3: " + LoremIpsumPar())
'' Done:
Return doc
End Function
End Class