// This code is part of GrapeCity Documents for Word samples.
// Copyright (c) GrapeCity, Inc. All rights reserved.
// This sample demonstrates the basics of working with text content
// and character formatting in GcWord.
// It creates a document and adds a paragraph of text to it.
// It then splits the paragraph into two runs, and assigns different
// font styles to the two halves of the text.
// The GetRange() method enables easy pinpointing of locations in the document.
public class CharacterFormatting
public GcWordDocument CreateDocx()
// Get a sample paragraph of text:
var lorem = Util.LoremIpsumPar();
// Create a new document:
GcWordDocument doc = new GcWordDocument();
// Add the paragraph to the document:
Paragraph p = doc.Body.Paragraphs.Add(lorem);
// The primary way of manipulating objects in GcWord is via ranges.
// Get the range on the paragraph that we've just added:
Range r = p.GetRange();
// A Run is a contiguous fragment of a document with uniform formatting.
// In our case, we have only one run so far, get it:
Run run = r.Runs.First;
// Set the size of the font on the whole run:
run.Font.Size = 16;
// A Text represents a contiguous fragment of text. It also belongs to a Run,
// and cannot span multiple runs (a run though can contain several Text's).
// Get the text object:
Text text = run.GetRange().Texts.First;
// Split the text into two halves (Split() returns the 2nd part):
Text tIpsum = text.Split(lorem.Length / 2);
// At this point, our run contains two Texts (two halves of the original text).
// We now split the run into two corresponding runs so that we can
// apply different formatting to the two texts:
Run rIpsum = run.Split(tIpsum, InsertLocation.Before);
// The 'text' was split into two halves, but the first half can still
// be accessed via the 'text' variable.
// A text's containing run can always be accessed via ParentRun.
// We set the font of the first half to italic:
text.ParentRun.Font.Italic = true;
// and the font of the second half to bold:
rIpsum.Font.Bold = true;