' calculate page rect (discounting margins)
Dim rcPage As Rect = WordUtils.PageRectangle(word)
Dim rc As Rect = rcPage
' initialize output parameters
Dim hdrFont As New Font("Arial", 14, RtfFontStyle.Bold)
Dim titleFont As New Font("Arial", 24, RtfFontStyle.Bold)
Dim txtFont As New Font("Times New Roman", 10, RtfFontStyle.Italic)
' add title
rc = WordUtils.RenderParagraph(word, word.Info.Title, titleFont, rcPage, rc)
' build document
For Each s As String In GetQuotes()
        Dim authorQuote As String() = s.Split(ControlChars.Tab)
        ' render header (author)
        Dim author = authorQuote(0)
        rc.Y += 20
        rc = WordUtils.RenderParagraph(word, author, hdrFont, rcPage, rc, True)
        ' render body text (quote)
        Dim text As String = authorQuote(1)
        rc.X = rcPage.X + 36
        ' << indent body text by 1/2 inch
        rc.Width = rcPage.Width - 40
        rc = WordUtils.RenderParagraph(word, text, txtFont, rcPage, rc)
        rc.X = rcPage.X
        ' << restore indent
        rc.Width = rcPage.Width ' << add 12pt spacing after each quote
        rc.Y += 12
Next
Private Shared Function GetQuotes() As List
        Dim list = New List()
        Using sr = New StreamReader(GetType(BasicTextPage).GetTypeInfo().Assembly.
                   GetManifestResourceStream("WordSamples.Resources.quotes.txt"))
                Dim quotes = sr.ReadToEnd()
                For Each quote As String In quotes.Split("*"C)
                        Dim pos As Integer = quote.IndexOf(vbCr & vbLf)
                        If pos > -1 Then
                                Dim q = String.Format("{0}" & vbTab & "{1}", quote.Substring(0, pos),
                                        quote.Substring(pos + 2).Trim())
                                list.Add(q)
                        End If
                Next
        End Using
        Return list
End Function