ProcurementLetter.vb
C# VB
'''' This code is part of Document Solutions for Word demos.'' Copyright (c) MESCIUS inc. All rights reserved.''Imports System.IOImports System.DrawingImports GrapeCity.Documents.Word
'' This sample builds a nice-looking procurement business letter using tables to create the layout.Public Class ProcurementLetter Function CreateDocx() As GcWordDocument Dim 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
Dim sec = doc.Body.Sections.First sec.PageSetup.Size.PaperSize = PaperSize.PaperA4 Dim footer = sec.Footers(HeaderFooterType.Primary) Dim 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
Dim sr = sec.GetRange() Dim t = sr.Tables.Add(1, 1) t.Format.Alignment = TableAlignment.Right t.Format.TableGrid.Add(216) t.Format.TableGrid.Add(126)
Dim c = t(0, 0) Dim 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
Dim cp = cf.Padding cp.Top = 12 cp.Left = 12 cp.Bottom = 24 cp.Right = 24
Dim cr = c.GetRange() p = cr.Paragraphs.First p.Format.Alignment = ParagraphAlignment.Right Dim f = p.Mark.Font f.Color.RGB = Color.Empty f.Name = "Arial" f.Size = 14
Dim r = p.GetRange().Runs.Add("Nancy Davolio") f = r.Font f.Color.RGB = 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 = Color.Empty f.Name = "Arial"
r = p.GetRange().Runs.First f = r.Font f.Color.RGB = Color.Empty f.Name = "Arial"
Dim 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()
Dim bytes = File.ReadAllBytes(Path.Combine("Resources", "ImagesBis", "nancy.png")) Dim 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 Dim wf = pic.WrapFormat wf.Type = WrapType.Square wf.Side = WrapSide.Right wf.DistanceLeft = 9 wf.DistanceRight = 9
Dim hp = pic.Position.Horizontal hp.Type = ShapePositionType.Points hp.RelativeTo = ShapeHorizontalRelativePosition.Column hp.Offset = 6
Dim vp = pic.Position.Vertical vp.Type = ShapePositionType.Points vp.RelativeTo = ShapeVerticalRelativePosition.Paragraph vp.Offset = -170.85F
AddPara(sr, Nothing) AddPara(sr, "Dear Mark,") AddPara(sr, Nothing) 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, Nothing) 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, Nothing) AddPara(sr, "Sincerely,") AddPara(sr, "Nancy Davolio,") AddPara(sr, "Chief Procurement Officer") '' Done: Return doc End Function
Private Sub AddPara(ByVal rng As Range, ByVal text As String) Dim p As Paragraph = Nothing If text IsNot Nothing Then p = rng.Paragraphs.Add(text) Else p = rng.Paragraphs.Add() End If p.Format.Spacing.LineSpacing = 1.3F p.Mark.Font.Name = "Arial" p.Mark.Font.Size = 12 If text IsNot Nothing Then Dim r = p.GetRange().Runs.First r.Font.Name = "Arial" r.Font.Size = 12 End If End SubEnd Class