GcLogoHtml.vb
''
'' This code is part of Document Solutions for Imaging demos.
'' Copyright (c) MESCIUS inc. All rights reserved.
''
Imports System.IO
Imports System.Drawing
Imports System.Collections.Generic
Imports System.Linq
Imports GrapeCity.Documents.Drawing
Imports GrapeCity.Documents.Text
Imports GrapeCity.Documents.Imaging
Imports GrapeCity.Documents.Html
Imports GCTEXT = GrapeCity.Documents.Text
Imports GCDRAW = GrapeCity.Documents.Drawing

'' This sample uses the same code as in the HelloWorld sample
'' to create an image with the "Hello, World!" text, but in addition
'' adds company logo copied from the MESCIUS home page
'' using DsHtml.
''
'' Please see notes in comments at the top of HelloWorldHtml
'' sample code for details on adding DsHtml to your projects.
Public Class GcLogoHtml
    Function GenerateImage(
        ByVal pixelSize As Size,
        ByVal dpi As Single,
        ByVal opaque As Boolean,
        Optional ByVal sampleParams As String() = Nothing) As GcBitmap

        '' MESCIUS home page:
        Dim uri = New Uri("https://developer.mescius.com/")
        '' The coordinates of the logo on the home page:
        Dim logoRc = New RectangleF(5, 5, 350, 80)

        '' Create the "Hello, World!" image like in the HelloWorld sample:
        Dim blue = Color.FromArgb(&HFF2E4884)
        Dim bmp = New GcBitmap(pixelSize.Width, pixelSize.Height, True, dpi, dpi)
        Using g = bmp.CreateGraphics(blue)
            Dim rc = New RectangleF(0, 0, pixelSize.Width, pixelSize.Height)
            Dim b = New RadialGradientBrush(Color.White, blue, New PointF(0.5F, 0.5F), True)
            g.FillRectangle(rc, b)
            Dim tf = New TextFormat With
                {
                    .Font = GCTEXT.Font.FromFile(Path.Combine("Resources", "Fonts", "timesbd.ttf")),
                    .FontSize = 64,
                    .ForeColor = Color.OrangeRed
                }
            g.DrawString("Hello, World!", tf, rc, TextAlignment.Center, ParagraphAlignment.Center, False)

            '' Copy and paste the logo from onto the image, scaled x2:
            Dim fmt = New HtmlToImageFormat(False, False) With
                {
                    .Clip = logoRc,
                    .Scale = 2
                }
            '' Create an instance of GcHtmlBrowser that is used to render HTML:
            Using browser = Util.NewHtmlBrowser()
                Dim s As SizeF
                g.DrawHtml(browser, uri, pixelSize.Width - logoRc.Width * fmt.Scale, 0, fmt, s)
            End Using
        End Using
        Return bmp
    End Function
End Class