WordCharWrap.vb
'' 
'' このコードは、DioDocs for PDF のサンプルの一部として提供されています。
'' © MESCIUS inc. All rights reserved.
'' 
Imports System
Imports System.IO
Imports System.Drawing
Imports GrapeCity.Documents.Pdf
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Drawing

'' このサンプルは、ワードラップモード(WordWrap と CharWrap)における
'' テキスト折り返しの違いを示します。
Public Class WordCharWrap
    Function CreatePDF(ByVal stream As Stream) As Integer
        Dim str = "DioDocs(ディオドック)は、ExcelやPDFなどの文書を、コードからAPIを利用することで操作できます。" + Environment.NewLine +
                  "DioDocs for PDF includes text and paragraph formatting, special characters and vertical text on all supported platforms."

        Dim doc = New GcPdfDocument()
        Dim page = doc.NewPage()
        Dim g = page.Graphics

        Dim tl = g.CreateTextLayout()
        tl.Append(str)
        tl.DefaultFormat.Font = Util.getFont()
        tl.DefaultFormat.FontSize = 12
        tl.MaxWidth = 72 * 3

        tl.WrapMode = WrapMode.WordWrap
        tl.PerformLayout(True)

        Dim dy = tl.Lines(0).Height + 72 / 16
        Dim rc = New RectangleF(72, 72 + dy, tl.MaxWidth, 72 * 2.0F)

        g.DrawString("WrapMode.WordWrap:", tl.DefaultFormat, New PointF(rc.Left, rc.Top - dy))
        g.DrawTextLayout(tl, rc.Location)
        g.DrawRectangle(rc, Color.CornflowerBlue)

        rc.Offset(0, 72 * 2.5F)
        tl.WrapMode = WrapMode.CharWrap
        tl.PerformLayout(False)
        g.DrawString("WrapMode.CharWrap:", tl.DefaultFormat, New PointF(rc.Left, rc.Top - dy))
        g.DrawTextLayout(tl, rc.Location)
        g.DrawRectangle(rc, Color.CornflowerBlue)

        '' PDF ドキュメントを保存します。
        doc.Save(stream)
        Return doc.Pages.Count
    End Function
End Class