0

需要将 ej2 图表从 syncfusion 导出到指定路径。

Angular8 UI 端的 HTML 代码;

<ejs-chart style='display:block;' [primaryXAxis]='primaryXAxis' [primaryYAxis]='primaryYAxis' [title]='title' [chartArea]='chartArea'>
<e-series-collection>
<e-series [dataSource]='data' type='Column' xName='x' yName='y' width=2> 
</e-series>
</e-series-collection>
</ejs-chart>

Angular8客户端的TS文件代码;

   this.chart.exportModule.export('PNG', 'chart');

此导出似乎没有选项来指定需要保存图表的位置。有没有办法实现它?如果不可能,有没有办法将此图表对象传递到 .NET Core 服务器端并从那里保存到指定位置?

我试图从客户端获取图表的数据 URL 并将其传递到服务器端并保存在那里。正在保存文件,但其中没有图表。

引用此链接以获取 dataURL,Sample 以获取 dataURl

这是放置在服务器端以从客户端获取数据的代码。但是,我不确定如何在这里获取ChartModel

// To specify corresponding folder
static string path = "D:\\";

// To export chart image in the specified folder
public void ExportChart(string Data, string ChartModel)
        {
            ChartProperties obj = ConvertChartObject(ChartModel);
            string type = obj.ExportSettings.Type.ToString().ToLower();
            string fileName = obj.ExportSettings.FileName;
            string orientation = obj.ExportSettings.Orientation.ToString();
            Data = Data.Remove(0, Data.IndexOf(',') + 1);
            MemoryStream stream = new MemoryStream(Convert.FromBase64String(Data));

            using (FileStream fs = new FileStream(path + "CoreChart.png", FileMode.Create))
            {
                using (BinaryWriter bw = new BinaryWriter(fs))
                {
                    byte[] data = Convert.FromBase64String(Data);
                    bw.Write(data);
                    bw.Dispose();
                }
            }
        }

// To create chart properties
        private ChartProperties ConvertChartObject(string ChartModel)
        {
            var settings = new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore,
                MissingMemberHandling = MissingMemberHandling.Ignore
            };
            ChartProperties chartProp = new ChartProperties();
            chartProp = JsonConvert.DeserializeObject<ChartProperties>(ChartModel, settings);
            return chartProp;
        }
4

0 回答 0