Convert HTML to SVG Vector Images in ASP.NET and MVC with C# and VB.NET

Winnovative HTML to SVG Converter can be used in any type of .NET application to convert HTML pages to SVG vector images. The HTML to SVG Converter is part of the Winnovative HTML to PDF Converter Library for .NET and is represented by the HtmlToSvgConverter class of this library. Using the HtmlToSvgConverter class you can convert HTML pages to SVG images. SVG is currently the most used format for vector images. The vector images are preferred in many situations over the raster images because the vector images can keep their quality when zooming in.

C# Code Sample to Convert HTML to SVG in ASP.NET

In the C# code sample below is created an instance of the HtmlToSvgConverter class to convert a HTML page to an SVG vector image.

protected void convertToSvgButton_Click(object sender, EventArgs e)
{
    // Create a HTML to SVG converter object with default settings
    HtmlToSvgConverter htmlToSvgConverter = new HtmlToSvgConverter();

    // Set HTML Viewer width in pixels which is the equivalent in converter of the browser window width
    htmlToSvgConverter.HtmlViewerWidth = int.Parse(htmlViewerWidthTextBox.Text);

    // Set HTML viewer height in pixels to convert the top part of a HTML page 
    // Leave it not set to convert the entire HTML
    if (htmlViewerHeightTextBox.Text.Length > 0)
        htmlToSvgConverter.HtmlViewerHeight = int.Parse(htmlViewerHeightTextBox.Text);
            
    // Set the maximum time in seconds to wait for HTML page to be loaded 
    // Leave it not set for a default 60 seconds maximum wait time
    htmlToSvgConverter.NavigationTimeout = int.Parse(navigationTimeoutTextBox.Text);

    // Set an adddional delay in seconds to wait for JavaScript or AJAX calls after page load completed
    // Set this property to 0 if you don't need to wait for such asynchcronous operations to finish
    if (conversionDelayTextBox.Text.Length > 0)
        htmlToSvgConverter.ConversionDelay = int.Parse(conversionDelayTextBox.Text);

    // The buffer to receive the generated SVG document
    byte[] outSvgBuffer = null;

    if (convertUrlRadioButton.Checked)
    {
        string url = urlTextBox.Text;

        // Convert the HTML page given by an URL to a SVG document in a memory buffer
        outSvgBuffer = htmlToSvgConverter.ConvertUrl(url);
    }
    else
    {
        string htmlString = htmlStringTextBox.Text;
        string baseUrl = baseUrlTextBox.Text;

        // Convert a HTML string with a base URL to a SVG document in a memory buffer
        outSvgBuffer = htmlToSvgConverter.ConvertHtml(htmlString, baseUrl);
    }

    // Send the SVG as response to browser

    // Set response content type
    Response.AddHeader("Content-Type", "image/svg+xml");

    // Instruct the browser to open the SVG file as an attachment or inline
    Response.AddHeader("Content-Disposition", String.Format("attachment; filename=HTML_to_SVG.svg; size={0}", outSvgBuffer.Length.ToString()));

    // Write the SVG document buffer to HTTP response
    Response.BinaryWrite(outSvgBuffer);

    // End the HTTP response and stop the current page processing
    Response.End();
}

You can also see a live demo for HTML to SVG Conversion with  C# and VB.NET code samples and a detailed description of the features.