我使用以下 C# 代码来生成图表,然后将其合并到 HTML 屏幕中。我想同时将图表(最好以 svg 格式)保存到磁盘,以便稍后合并到 pdf 文件中。这些示例似乎都在 javascript 中发生了这种情况。请问我该如何在这个 C# 代码中做到这一点。
@using Highsoft.Web.Mvc.Charts
@using Highsoft.Web.Mvc.Charts.Rendering
@using System.Collections
@{
List<string> values = new List<string>();
Model.columnSeries.ForEach(u => values.Add(u.Name.ToString()));
var chartOptions = new Highcharts
{
Boost =
{
UseGPUTranslations = true
},
Title = new Title
{
Text = @Model.Title
},
Subtitle = new Subtitle
{
Text = @Model.SubTitle
},
XAxis = new List<XAxis>
{
new XAxis
{
Categories = values,
AllowDecimals = false,
Labels = new XAxisLabels
{
Rotation = -45
//Formatter = "formatXAxis"
}
}
},
YAxis = new List<YAxis>
{ new YAxis
{
Title = new YAxisTitle
{
Text = @Model.YaxisLabel
},
Labels = new YAxisLabels
{
//Formatter = "formatYAxis"
}
}
},
Tooltip = new Tooltip
{
PointFormat = "{series.name}: <b>{point.y:.0f}</b>"
},
PlotOptions = new PlotOptions
{
Column = new PlotOptionsColumn
{
}
},
Series = new List<Series>
{
new ColumnSeries
{
Data = @Model.columnSeries
}
}
};
chartOptions.ID = "Services";
var renderer = new HighchartsRenderer(chartOptions);
//chart.exportChart();
}
@Html.Raw(renderer.RenderHtml())
并插入到 HTML(视图)中
@await Component.InvokeAsync("ServiceChart", new {clientId = Model.ClientId, startDate = Model.StartDate, endDate = Model.EndDate})
从网站下载 SVG 的示例如下:https://dotnet.highcharts.com/Highcharts/Demo/Gallery?demo=LineBasic&theme=default
但是,如果您想在后端执行此操作,使用 .NET 包装器则不具备此类功能。在这种情况下,您将使用导出服务器:https://www.highcharts.com/docs/export-module/render-charts-serverside