Highcharts export image. Net C #

Source: Internet
Author: User

Highcharts provides the image export function, but it needs to connect to its server for export.

Public Network is required, and the speed of foreign servers is quite slow.

Therefore, I found a class to export highcharts images by myself and put it out.

using System;using System.Collections.Generic;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.IO;using Svg;using System.Drawing.Imaging;using iTextSharp.text;using iTextSharp.text.pdf;using System.Text;namespace ExportServer{    public partial class _Default : System.Web.UI.Page    {        protected void Page_Load(object sender, EventArgs e)        {            if (!Page.IsPostBack)            {                if (Request.Form["type"] != null && Request.Form["svg"] != null && Request.Form["filename"] != null)                {                    string tType = Request.Form["type"].ToString();                    string tSvg = Request.Form["svg"].ToString();                    string tFileName = Request.Form["filename"].ToString();                    if (tFileName == "")                    {                        tFileName = "chart";                    }                    MemoryStream tData = new MemoryStream(Encoding.UTF8.GetBytes(tSvg));                    MemoryStream tStream = new MemoryStream();                    string tTmp = new Random().Next().ToString();                    string tExt = "";                    string tTypeString = "";                    switch (tType)                    {                        case "image/png":                            tTypeString = "-m image/png";                            tExt = "png";                            break;                        case "image/jpeg":                            tTypeString = "-m image/jpeg";                            tExt = "jpg";                            break;                        case "application/pdf":                            tTypeString = "-m application/pdf";                            tExt = "pdf";                            break;                        case "image/svg+xml":                            tTypeString = "-m image/svg+xml";                            tExt = "svg";                            break;                    }                    if (tTypeString != "")                    {                        string tWidth = Request.Form["width"].ToString();                        Svg.SvgDocument tSvgObj = SvgDocument.Open(tData);                        switch (tExt)                        {                            case "jpg":                                tSvgObj.Draw().Save(tStream, ImageFormat.Jpeg);                                break;                            case "png":                                tSvgObj.Draw().Save(tStream, ImageFormat.Png);                                break;                            case "pdf":                                PdfWriter tWriter = null;                                Document tDocumentPdf = null;                                try                                {                                    tSvgObj.Draw().Save(tStream, ImageFormat.Png);                                    tDocumentPdf = new Document(new Rectangle((float)tSvgObj.Width, (float)tSvgObj.Height));                                    tDocumentPdf.SetMargins(0.0f, 0.0f, 0.0f, 0.0f);                                    iTextSharp.text.Image tGraph = iTextSharp.text.Image.GetInstance(tStream.ToArray());                                    tGraph.ScaleToFit((float)tSvgObj.Width, (float)tSvgObj.Height);                                    tStream = new MemoryStream();                                    tWriter = PdfWriter.GetInstance(tDocumentPdf, tStream);                                    tDocumentPdf.Open();                                    tDocumentPdf.NewPage();                                    tDocumentPdf.Add(tGraph);                                    tDocumentPdf.CloseDocument();                                }                                catch (Exception ex)                                {                                    throw ex;                                }                                finally                                {                                    tDocumentPdf.Close();                                    tDocumentPdf.Dispose();                                    tWriter.Close();                                    tWriter.Dispose();                                    tData.Dispose();                                    tData.Close();                                }                                break;                            case "svg":                                tStream = tData;                                break;                        }                        Response.ClearContent();                        Response.ClearHeaders();                        Response.ContentType = tType;                        Response.AppendHeader("Content-Disposition", "attachment; filename=" + tFileName + "." + tExt + "");                        Response.BinaryWrite(tStream.ToArray());                        Response.End();                    }                }            }        }    }}

You need to reference SVG. DLL to find an open-source project connection.

Itextsharp. dll provides Chinese support

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.