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

'' PDF 仕様には、常に利用可能な 14 の標準フォントが記載されています。
'' GcPdf にはこれらのフォントが組み込まれており、このサンプルが示すように直接使用することができます。
Public Class StandardPdfFonts
    Function CreatePDF(ByVal stream As Stream) As Integer
        Dim doc = New GcPdfDocument()
        Dim g = doc.NewPage().Graphics
        '' テキストの挿入位置(デフォルト解像度は 72 dpi、1 インチの余白を使用)。
        Const margin = 72
        Dim ip = New PointF(margin, margin)
        Dim tf = New TextFormat() With {.FontSize = 12}
        Dim drawText As Action(Of String, Font) =
            Sub(tag_ As String, fnt_ As Font)
                tf.Font = fnt_
                Dim tstr = $"{tag_} ({fnt_.FullFontName}): GrapeCity DioDocs for PDF 日本語テキスト"
                Dim s = g.MeasureString(tstr, tf, doc.PageSize.Width - margin * 2)
                g.DrawString(tstr, tf, New RectangleF(ip, s))
                ip.Y += s.Height * 1.5F
            End Sub
        '' 14 種類の標準フォントのサンプルを描画します。
        drawText("Helvetica", StandardFonts.Helvetica)
        drawText("HelveticaItalic", StandardFonts.HelveticaItalic)
        drawText("HelveticaBold", StandardFonts.HelveticaBold)
        drawText("HelveticaBoldItalic", StandardFonts.HelveticaBoldItalic)
        drawText("Times", StandardFonts.Times)
        drawText("TimesItalic", StandardFonts.TimesItalic)
        drawText("TimesBold", StandardFonts.TimesBold)
        drawText("TimesBoldItalic", StandardFonts.TimesBoldItalic)
        drawText("Courier", StandardFonts.Courier)
        drawText("CourierItalic", StandardFonts.CourierItalic)
        drawText("CourierBold", StandardFonts.CourierBold)
        drawText("CourierBoldItalic", StandardFonts.CourierBoldItalic)
        drawText("Symbol", StandardFonts.Symbol)
        drawText("ZapfDingbats", StandardFonts.ZapfDingbats)
        ''
        '' PDF ドキュメントを保存します。
        doc.Save(stream)
        Return doc.Pages.Count
    End Function
End Class