我在我的项目中使用Telerik RadPivotGrid控件和HtmlChart控件,我需要为网格控件和图表控件实现导出功能(PNG,PDF,Excel)。 RadPivotGrid控件支持excel导出,但不直接支持PNG,PDF,HtmlChart控件不直接支持任何导出功能,但Telerik提出了一种使用Inkscape(http://www.telerik.com/community/code-library/aspnet-ajax/html-chart/exporting-radhtmlchart-to-png-and-pdf.aspx)导出为PNG和PDF的方法,但这是不可接受的对于我们的项目。所以我正在寻找一种很好的替代方法来实现这两种控件的导出功能。如果有人有任何建议,请发布您的解决方案。
答案 0 :(得分:0)
使用JavaScript渲染RadHtmLChart。所以,你不能像这样导出它。 也许使用RadChart可以提供帮助,它在服务器上呈现并通过处理程序提供图像。 This thread提供了一些您可能会觉得有帮助的想法。 您还可以考虑使用一种报告形式来生成pdfs:http://www.telerik.com/help/reporting/graphoverview.html。
答案 1 :(得分:-1)
使用JavaScript,可以获得HtmlChart的SVGstring。然后使用任何工具将此svg字符串导出为PNG,PDF或JPG。 通过JavaScript获取svgstring:
function getSvgContent(sender) {
var chartRendering;
chartRendering = $find("<%=[Chart id Here].ClientID %>").getSVGString();
$get("<%=[Hidden field id].ClientID %>").value = escape(chartRendering);
__doPostBack(sender.name, "");
}
部分代码将svg保存到文件:
string svgText = HttpUtility.UrlDecode([Hidden_field_id].Value, System.Text.Encoding.Default);
currentSettings.SvgFilePath = Server.MapPath("/temp.svg");
System.IO.File.WriteAllText(currentSettings.SvgFilePath, svgText);
中介绍了一种使用inkscape工具的方法