//
// This code is part of Document Solutions for Word demos.
// Copyright (c) MESCIUS inc. All rights reserved.
//
using GrapeCity.Documents.Word;
namespace DsWordWeb.Demos
{
// This sample demonstrates the basics of working with text content
// and character formatting in DsWord.
// 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 DsWord 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;
// Done:
return doc;
}
}
}