RenderSvgText.vb
''
'' このコードは、DioDocs for Imaging のサンプルの一部として提供されています。
'' © MESCIUS inc. All rights reserved.
''
Imports System
Imports System.IO
Imports System.Drawing
Imports System.Collections.Generic
Imports System.Linq
Imports System.Numerics
Imports GrapeCity.Documents.Drawing
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Imaging
Imports GrapeCity.Documents.Svg
Imports GCTEXT = GrapeCity.Documents.Text
Imports GCDRAW = GrapeCity.Documents.Drawing
Public Class RenderSvgText
Public Function GenerateImage(
ByVal pixelSize As Size,
ByVal dpi As Single,
ByVal opaque As Boolean,
Optional ByVal sampleParams As String() = Nothing) As GcBitmap
'' textとtspanを含むSVGを読み込みます。
Dim svgString As String =
"<svg width='12cm' height='3cm' viewBox='0 0 1000 300' xmlns='http://www.w3.org/2000/svg' version='1.1'>" &
" <g font-family='Verdana' font-size='64' >" &
" <text x='160' y='180' fill='blue'>Apples are not <tspan font-weight='bold' fill='orange'>oranges</tspan>.</text>" &
" </g>" &
"</svg>"
Using svg = GcSvgDocument.FromString(svgString)
'' SVG画像と、その周囲の境界線を描画します。
Dim bmp = New GcBitmap(pixelSize.Width, pixelSize.Height, opaque, dpi, dpi)
Using g = bmp.CreateGraphics(Color.White)
Dim pt = New PointF(dpi, dpi)
g.DrawSvg(svg, pt)
Dim sz = svg.GetIntrinsicSize(SvgLengthUnits.Pixels)
g.DrawRectangle(New RectangleF(pt, sz), Color.MediumPurple)
End Using
'' 画像ファイルを保存します。
Return bmp
End Using
End Function
End Class