Telerik RadPivotGrid,HtmlChart导出为PDF,PNG,Excel

时间:2013-12-02 04:56:20

标签: c# asp.net telerik export

我在我的项目中使用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的方法,但这是不可接受的对于我们的项目。所以我正在寻找一种很好的替代方法来实现这两种控件的导出功能。如果有人有任何建议,请发布您的解决方案。

2 个答案:

答案 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);

this forum

中介绍了一种使用inkscape工具的方法