ProcurementLetter.cs
// // 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 GrapeCity . Documents . Word ; using Range = GrapeCity . Documents . Word . Range ; namespace DsWordWeb . Demos { // This sample builds a nice-looking procurement business letter imports tables to create the layout. public class ProcurementLetter { public GcWordDocument CreateDocx () { var doc = new GcWordDocument (); doc . Styles . DefaultFont . Size = 12 ; doc . Styles . DefaultParagraphFormat . Spacing . SpaceAfter = 0 ; doc . Styles [ BuiltInStyleId . Normal ]. Font . Name = "Times New Roman" ; doc . Styles [ BuiltInStyleId . Normal ]. Font . Size = 10 ; var sec = doc . Body . Sections . First ; sec . PageSetup . Size . PaperSize = PaperSize . PaperA4 ; var footer = sec . Footers [ HeaderFooterType . Primary ]; var p = footer . Body . Paragraphs . Add ( "Residential Homes | Commercial Properties | Investment Real Estate | Financing Specialists" ); p . Format . Alignment = ParagraphAlignment . Center ; p . GetRange (). Runs . First . Font . Size = 8.5f ; var sr = sec . GetRange (); var t = sr . Tables . Add ( 1 , 1 ); t . Format . Alignment = TableAlignment . Right ; t . Format . TableGrid . Add ( 216 ); t . Format . TableGrid . Add ( 126 ); var c = t [ 0 , 0 ]; var cf = c . Format ; cf . GridSpan = 2 ; cf . PreferredWidth . Type = PreferredWidthType . Points ; cf . PreferredWidth . Value = 342 ; cf . Shading . Texture = TexturePattern . Clear ; cf . Shading . ForegroundPatternColor . RGB = System . Drawing . Color . Empty ; cf . Shading . BackgroundPatternColor . RGB = System . Drawing . Color . FromArgb ( 255 , 59 , 19 , 110 ); cf . VerticalAlignment = CellVerticalAlignment . Center ; var cp = cf . Padding ; cp . Top = 12 ; cp . Left = 12 ; cp . Bottom = 24 ; cp . Right = 24 ; var cr = c . GetRange (); p = cr . Paragraphs . First ; p . Format . Alignment = ParagraphAlignment . Right ; var f = p . Mark . Font ; f . Color . RGB = System . Drawing . Color . Empty ; f . Name = "Arial" ; f . Size = 14 ; var r = p . GetRange (). Runs . Add ( "Nancy Davolio" ); f = r . Font ; f . Color . RGB = System . Drawing . Color . Empty ; f . Name = "Arial" ; f . Size = 14 ; p = cr . Paragraphs . Add ( "Chief Procurement Officer" ); p . Format . Alignment = ParagraphAlignment . Right ; f = p . Mark . Font ; f . Color . RGB = System . Drawing . Color . Empty ; f . Name = "Arial" ; r = p . GetRange (). Runs . First ; f = r . Font ; f . Color . RGB = System . Drawing . Color . Empty ; f . Name = "Arial" ; var row = t . Rows . Add (); row . Format . Height = 92.4f ; c = row . Cells . Add (); cf = c . Format ; cf . PreferredWidth . Type = PreferredWidthType . Points ; cf . PreferredWidth . Value = 216 ; cf . Shading . Texture = TexturePattern . Clear ; cf . Shading . ForegroundPatternColor . RGB = System . Drawing . Color . Empty ; cf . Shading . BackgroundPatternColor . RGB = System . Drawing . Color . FromArgb ( 255 , 242 , 242 , 242 ); cf . Padding . Top = 12 ; cr = c . GetRange (); p = cr . Paragraphs . First ; f = p . Mark . Font ; f . Color . RGB = System . Drawing . Color . FromArgb ( 255 , 196 , 89 , 17 ); f . Color . ThemeColor = ThemeColorId . Accent2 ; f . Color . ThemeShade = 191 ; f . Name = "Arial" ; r = p . GetRange (). Runs . Add ( "555-543-5432" ); f = r . Font ; f . Color . RGB = System . Drawing . Color . FromArgb ( 255 , 196 , 89 , 17 ); f . Color . ThemeColor = ThemeColorId . Accent2 ; f . Color . ThemeShade = 191 ; f . Name = "Arial" ; p = cr . Paragraphs . Add ( "www.acmeinc.com" ); p . Mark . Style = doc . Styles [ BuiltInStyleId . Hyperlink ]; p . Mark . Font . Name = "Arial" ; r = p . GetRange (). Runs . First ; r . Style = doc . Styles [ BuiltInStyleId . Hyperlink ]; r . Font . Name = "Arial" ; p = cr . Paragraphs . Add ( "5432 Street West, Townsvilla, State 54321" ); p . Mark . Font . Name = "Arial" ; p . GetRange (). Runs . First . Font . Name = "Arial" ; c = row . Cells . Add (); cf = c . Format ; cf . PreferredWidth . Type = PreferredWidthType . Points ; cf . PreferredWidth . Value = 126 ; cf . Padding . Bottom = 0 ; cf . VerticalAlignment = CellVerticalAlignment . Center ; p = c . GetRange (). Paragraphs . First ; p . Format . Alignment = ParagraphAlignment . Center ; r = p . GetRange (). Runs . Add (); var bytes = File . ReadAllBytes ( Path . Combine ( "Resources" , "ImagesBis" , "nancy.png" )); var pic = r . GetRange (). Pictures . Add ( bytes , "image/png" ); pic . Size . Height . Value = 96 ; pic . Size . Width . Value = 111.75f ; p = sr . Paragraphs . Add (); r = p . GetRange (). Runs . Add (); bytes = File . ReadAllBytes ( Path . Combine ( "Resources" , "ImagesBis" , "acme.png" )); pic = r . GetRange (). Pictures . Add ( bytes , "image/png" ); pic . Size . Height . Value = 63 ; pic . Size . Width . Value = 93.75f ; var wf = pic . WrapFormat ; wf . Type = WrapType . Square ; wf . Side = WrapSide . Right ; wf . DistanceLeft = 9 ; wf . DistanceRight = 9 ; var hp = pic . Position . Horizontal ; hp . Type = ShapePositionType . Points ; hp . RelativeTo = ShapeHorizontalRelativePosition . Column ; hp . Offset = 6 ; var vp = pic . Position . Vertical ; vp . Type = ShapePositionType . Points ; vp . RelativeTo = ShapeVerticalRelativePosition . Paragraph ; vp . Offset = - 170.85f ; AddPara ( sr , null ); AddPara ( sr , "Dear Mark," ); AddPara ( sr , null ); AddPara ( sr , "The first shipment of equipment from AMA Ltd has arrived. We are delighted with every piece. Therefore, we decided to make our initial purchase larger than anticipated. I am attaching our purchase order No. 8393 for additional goods. " ); AddPara ( sr , null ); AddPara ( sr , "Since you already have a copy of our Procurement Guidelines, I shall not attach them to this order. Please inform me of shipping dates." ); AddPara ( sr , null ); AddPara ( sr , "Sincerely," ); AddPara ( sr , "Nancy Davolio," ); AddPara ( sr , "Chief Procurement Officer" ); return doc ; } private void AddPara ( Range rng , string text ) { Paragraph p = null ; if ( text != null ) p = rng . Paragraphs . Add ( text ); else p = rng . Paragraphs . Add (); p . Format . Spacing . LineSpacing = 1.3f ; p . Mark . Font . Name = "Arial" ; p . Mark . Font . Size = 12 ; if ( text != null ) { Run r = p . GetRange (). Runs . First ; r . Font . Name = "Arial" ; r . Font . Size = 12 ; } } } }