RenderPage0.vb
C# VB
'''' This code is part of Document Solutions for Imaging demos.'' Copyright (c) MESCIUS inc. All rights reserved.''Imports System.IOImports System.DrawingImports GrapeCity.Documents.ImagingImports GrapeCity.Documents.Html
'' This sample shows how to render a web page specified by a URL'' to an image (here we render the Google home page) using DsHtml.'''' DsHtml natively supports only two image formats - JPEG and PNG.'' For these formats, we directly use the GcHtmlRenderer class'' to render the page to a temporary image file, which is then'' copied to the output stream.'''' Other image formats (BMP, GIF, TIFF) require rendering HTML'' to a temporary GcBitmap, and saving that to the target format.'''' Please see notes in comments at the top of HelloWorldHtml'' sample code for details on adding DsHtml to your projects.Public Class RenderPage0 Function GenerateImageStream( ByVal targetMime As String, ByVal pixelSize As Size, ByVal dpi As Single, ByVal opaque As Boolean, Optional sampleParams As String() = Nothing) As Stream
'' The Uri of the web page to render: Dim uri = New Uri("http://www.google.com")
'' Depending on the target format, we may need a temp file: Dim tfile As String = Nothing
'' The stream to contain the return image: Dim ms = New MemoryStream()
'' Create an instance of GcHtmlBrowser that is used to render HTML, '' and an HtmlPage instance rendering the source Uri: Using browser = Util.NewHtmlBrowser(), htmlPage = browser.NewPage(uri, New PageOptions() With {.WindowSize = pixelSize}) '' JPEG, PNG and WebP are natively supported by DsHtml. Other image formats can be '' supported by rendering to a GcBitmap and saving it to the target format: Select Case targetMime Case MimeTypes.JPEG tfile = Path.GetTempFileName() htmlPage.SaveAsJpeg(tfile, New JpegOptions()) Case MimeTypes.PNG tfile = Path.GetTempFileName() htmlPage.SaveAsPng(tfile, New PngOptions()) Case MimeTypes.WEBP tfile = Path.GetTempFileName() htmlPage.SaveAsWebp(tfile, New WebpOptions()) Case Else '' For formats other than JPEG Or PNG, create a GcBitmap And render to it Using bmp = New GcBitmap(pixelSize.Width, pixelSize.Height, True, dpi, dpi) htmlPage.Render(bmp, New PngOptions()) Select Case targetMime Case MimeTypes.BMP bmp.SaveAsBmp(ms) Case MimeTypes.GIF bmp.SaveAsGif(ms) Case MimeTypes.TIFF bmp.SaveAsTiff(ms) Case MimeTypes.ICO bmp.SaveAsIco(ms, Nothing, IcoFrameEncoding.Png) Case Else Throw New Exception("Unexpected.") End Select End Using End Select End Using '' If a temp file was used, copy the created image from the temp file and clean up: If Not String.IsNullOrEmpty(tfile) Then Using ts = File.OpenRead(tfile) ts.CopyTo(ms) End Using File.Delete(tfile) End If '' Done. ms.Seek(0, SeekOrigin.Begin) Return ms End FunctionEnd Class