//// This code is part of Document Solutions for Word demos.// Copyright (c) MESCIUS inc. All rights reserved.//using GrapeCity.Documents.Word;
namespace DsWordWeb.Demos{ // Shows how to create a document with multi-column layout. public class Columns { public GcWordDocument CreateDocx() { const float In = 72; GcWordDocument doc = new GcWordDocument();
var sec1 = doc.Body.Sections.First;
sec1.PageSetup.TextColumns.Add();
var pars1 = sec1.GetRange().Paragraphs; pars1.Add("Section 1, Paragraph 1: " + Util.LoremIpsumPar()); pars1.Add("Section 1, Paragraph 2: " + Util.LoremIpsumPar()); pars1.Add("Section 1, Paragraph 3: " + Util.LoremIpsumPar());
var sec2 = doc.Body.Paragraphs.Last.AddSectionBreak(); sec2.PageSetup.Margin.Left = sec2.PageSetup.Margin.Right = sec2.PageSetup.Margin.Top = sec2.PageSetup.Margin.Bottom = In / 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 float pw = sec2.PageSetup.ClientWidth; float space = sec2.PageSetup.TextColumns[0].SpaceAfter; float c0w = In * 2; float cw = (pw - c0w - space * 2) / 2; sec2.PageSetup.TextColumns[0].Width = In * 2; sec2.PageSetup.TextColumns.Add(cw); sec2.PageSetup.TextColumns.Add(cw);
var 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: " + Util.LoremIpsumPar()); pars2.Add("Section 2, Paragraph 3: " + Util.LoremIpsumPar());
// Done: return doc; } }}