//
// This code is part of Document Solutions for Word demos.
// Copyright (c) MESCIUS inc. All rights reserved.
//
using System;
using System.IO;
using System.Drawing;
using GrapeCity.Documents.Word;
using Range = GrapeCity.Documents.Word.Range;
namespace DsWordWeb.Demos
{
// This sample demonstrates how to create, specify and apply
// character styles.
// It creates a paragraph of text, splits it into two runs,
// then creates and applies two different character styles
// to the two runs.
// The part creating and splitting the paragraph is based
// on the CharacterFormatting sample.
public class CharacterStyles
{
public GcWordDocument CreateDocx()
{
// Get a sample paragraph of text:
var lorem = Util.LoremIpsumPar();
// The code below is similar to FormatChars code that creates and splits a paragraph:
GcWordDocument doc = new GcWordDocument();
Paragraph p = doc.Body.Paragraphs.Add(lorem);
Range r = p.GetRange();
Run run = r.Runs.First;
Text text = run.GetRange().Texts.First;
Text tIpsum = text.Split(lorem.Length / 2);
Run rIpsum = run.Split(tIpsum, InsertLocation.Before);
// We now have two runs, create and apply different styles to each:
//
// Create a new char style "Lorem" for the first half:
Style sLorem = doc.Styles.Add("Lorem", StyleType.Character);
sLorem.Font.Name = "Times New Roman";
sLorem.Font.Size = 16;
sLorem.Font.Bold = true;
sLorem.Font.Italic = true;
sLorem.Font.Underline = Underline.Thick;
// 'text' was split into 2 halves, but the head can be still
// accessed via the 'text' variable. We set its style to the
// newly created style (the style of the 2nd half remains default):
text.ParentRun.Style = sLorem;
// Create a new char style "Ipsum" for the 2nd half:
Style sIpsum = doc.Styles.Add("Ipsum", StyleType.Character);
sIpsum.Font.Name = "Gabriola";
sIpsum.Font.Size = 18;
sIpsum.Font.Color.RGB = Color.BlueViolet;
rIpsum.Style = sIpsum;
// Done:
return doc;
}
}
}