//
// 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 System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
using GrapeCity.Documents.Word;
namespace DsWordWeb.Demos
{
// This sample shows how to render subscript and superscript text.
public class SubSuperScript
{
public GcWordDocument CreateDocx()
{
var doc = new GcWordDocument();
var sec = doc.Body.Sections.First;
var para = sec.GetRange().Paragraphs.Add();
// Get a random 'lorem ipsum' paragraph:
var text = Util.LoremIpsum(1, 18, 20, 20, 20)[0];
// Split the paragraph into 'lorem', 'ipsum' and everything else:
const string sub = "lorem";
const string super = "ipsum";
var frags = Regex.Split(text, $"({sub})|({super})");
// Create subscript and superscript styles:
var sSub = doc.Styles.Add("My Subscript", StyleType.Character);
sSub.Font.VerticalPosition = VerticalTextPosition.Subscript;
var sSup = doc.Styles.Add("My Superscript", StyleType.Character);
sSup.Font.VerticalPosition = VerticalTextPosition.Superscript;
// Add text to a TextLayout using special formats for 'lorem' and 'ipsum':
foreach (var frag in frags)
{
if (frag == sub)
para.GetRange().Runs.Add(frag, sSub);
else if (frag == super)
para.GetRange().Runs.Add(frag, sSup);
else
para.GetRange().Runs.Add(frag);
}
// Done:
return doc;
}
}
}