- //
- // 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;
- }
- }
- }