''
'' This code is part of Document Solutions for Word demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Drawing
Imports 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 Sub
End Class