' ページ四角形を計算します(マージンを差し引いて)
Dim rcPage As Rect = WordUtils.PageRectangle(word)
Dim rc As Rect = rcPage
' 出力パラメータを初期化します
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)
' タイトルを追加します
rc = WordUtils.RenderParagraph(word, word.Info.Title, titleFont, rcPage, rc)
' ドキュメントを構築します
For Each s As String In GetQuotes()
Dim authorQuote As String() = s.Split(ControlChars.Tab)
' ヘッダーをレンダリングします(作成者)
Dim author = authorQuote(0)
rc.Y += 20
rc = WordUtils.RenderParagraph(word, author, hdrFont, rcPage, rc, True)
' 本文をレンダリングします(引用文)
Dim text As String = authorQuote(1)
rc.X = rcPage.X + 36
' << 本文を 1/2 インチインデントします
rc.Width = rcPage.Width - 40
rc = WordUtils.RenderParagraph(word, text, txtFont, rcPage, rc)
rc.X = rcPage.X
' << インデントを元に戻します
rc.Width = rcPage.Width ' << 各引用文の後に 12pt のスペースを追加します
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