//
// This code is part of Document Solutions for Word demos.
// Copyright (c) MESCIUS inc. All rights reserved.
//
using System;
using System.Drawing;
using System.IO;
using GrapeCity.Documents.Word;
using GrapeCity.Documents.Imaging;
namespace DsWordWeb.Demos
{
// This sample demonstrates how to use basic elements
// (text, borders, picture) to create a Word document in code.
public class SimpleDocument
{
public GcWordDocument CreateDocx()
{
var doc = new GcWordDocument();
var sec = doc.Body.Sections.First;
var pars = sec.GetRange().Paragraphs;
// Title:
var title = pars.Add("Simple Word Document");
title.Style = doc.Styles[BuiltInStyleId.Title];
// Heading:
var heading = pars.Add("Basic Elements");
heading.Style = doc.Styles[BuiltInStyleId.Heading1];
// Text:
var p = pars.Add("This document is built using the following basic elements available through the ");
var run = p.GetRange().Runs.Add("DsWord");
run.Style = doc.Styles[BuiltInStyleId.Strong];
p.GetRange().Runs.Add(" object model:");
// List:
var listTemplate = doc.ListTemplates.Add(BuiltInListTemplateId.BulletDefault, "myListTemplate");
// Add bullet items:
Action<string> addListItem = t_ => {
var p_ = pars.Add(t_);
p_.ListFormat.Template = listTemplate;
p_.Style = doc.Styles[BuiltInStyleId.ListParagraph];
};
addListItem("Text and text runs");
addListItem("Paragraphs");
addListItem("List templates");
addListItem("Borders");
addListItem("Pictures");
addListItem("Styles");
pars.Add().Style = doc.Styles[BuiltInStyleId.Normal];
// Add picture:
var picBytes = File.ReadAllBytes(Path.Combine("Resources", "Images", "road.jpg"));
// Create a GcBitmap so that we can find out the native picture size:
var bmp = new GcBitmap(picBytes);
// Scale picture to fill 80% of the page width:
var width = doc.Body.Sections.Last.PageSetup.ClientWidth * 0.8f;
var height = bmp.Height * (width / bmp.Width);
var pic = pars.Add().GetRange().Runs.Add().GetRange().Pictures.Add(picBytes, "image/jpeg");
pic.Size.Width.Value = width;
pic.Size.Height.Value = height;
pic.WrapFormat.Type = WrapType.TopBottom;
pic.Position.Horizontal.Type = ShapePositionType.Alignment;
pic.Position.Horizontal.Alignment = ShapeHorizontalRelativeAlignment.Center;
// Adjust styles:
var font = "Arial";
var hicolor = Color.SteelBlue;
var bcolor = Color.Coral;
// Title:
var sTitle = doc.Styles[BuiltInStyleId.Title];
var bb = sTitle.ParagraphFormat.Borders.Bottom;
bb.LineStyle = LineStyle.Single;
bb.LineWidth = 4;
bb.Color.RGB = bcolor;
bb.Space = 10;
sTitle.Font.Color.RGB = hicolor;
sTitle.Font.Name = font;
sTitle.Font.Bold = true;
sTitle.Font.Size = 30;
// Heading 1:
var sHeading1 = doc.Styles[BuiltInStyleId.Heading1];
sHeading1.Font.Color.RGB = hicolor;
sHeading1.Font.Name = font;
sHeading1.Font.Bold = true;
sHeading1.ParagraphFormat.Spacing.SpaceAfter = 8;
// Normal text:
var sNormal = doc.Styles[BuiltInStyleId.Normal];
sNormal.Font.Name = font;
sNormal.Font.Size = 12;
// Strong text:
var sStrong = doc.Styles[BuiltInStyleId.Strong];
sStrong.Font.Color.RGB = hicolor;
sStrong.Font.Italic = true;
// Done:
return doc;
}
}
}