0

我很难从 C# 解决方案(融合图表的演示包)中提供的基本示例导出纯 JavaScript 图表。我的示例来自 FusionChart 网站上提供的评估代码。

我已经添加了

exportenabled='1' exportHandler='http://localhost:64162/CS/Export_Handler/FCExporter.aspx'

到现有的 Data.xml 文件,以便使用本地处理程序启用导出

图表 BasicExample/MultiChartsJS.aspx 的图表定义:

<chart caption='Monthly Unit Sales' xAxisName='Month' yAxisName='Units' showValues='0'
    formatNumberScale='0' showBorder='1' exportenabled='1' exportHandler='http://localhost:64162/CS/Export_Handler/FCExporter.aspx'>
    <set label='Jan' value='462' />
    <set label='Feb' value='857' />
    <set label='Mar' value='671' />
    <set label='Apr' value='494' />
    <set label='May' value='761' />
    <set label='Jun' value='960' />
    <set label='Jul' value='629' />
    <set label='Aug' value='622' />
    <set label='Sep' value='376' />
    <set label='Oct' value='494' />
    <set label='Nov' value='761' />
    <set label='Dec' value='960' />
</chart>

我将 exportHandler 指向同一解决方案中的 C# 导出处理程序 (FCExporter)。

调用导出时,处理程序会触发,但我在处理程序中遇到两个不同的运行时错误:

FCExporter.cs 内部的故障

1)JPEG转换:

gr.Clear(ColorTranslator.FromHtml("#" + rawImageData["bgcolor"].ToString())); 

失败是因为 rawImageData["bgcolor"] 已经包含 #

2)PDF转换

 int fRepeat = int.Parse(split_data[1]);

因超出范围异常而失败

处理程序似乎与正在导出的图表不同步。如果我指向导出的外部融合站点,它将起作用。是否有新版本的处理程序可用?我正在使用 FusionCharts.js 的 3.3.1-sr2.19840 版本

4

2 回答 2

2

您似乎正在使用仅为导出 Flash 图表而设计的导出处理程序。要导出 JavaScript 图表,您需要单独设置导出。

.NET 导出处理程序还不能处理 JavaScript 图表。话虽如此,你还没有倒霉。您还有两个选择:

  1. 使用纯服务器端渲染生成图表图像 - http://blog.fusioncharts.com/2013/03/how-to-save-charts-as-images-at-server-side/

  2. 将图表的 SVG 数据发送到服务器后,使用适用于 .NET 的 CodePlex SVG 渲染引擎 - http://svg.codeplex.com(即使在 IE 上,也可以使用 获取图表的 SVG 字符串chartInstance.toSVGString()

请注意,如果您使用 PHP 导出处理程序,它可以使用文档文章中提到的相同导出处理程序处理 flash 和 javascript 导出 - http://docs.fusioncharts.com/charts/contents/exporting-image/ECPureJS。 html

于 2013-06-11T21:23:46.820 回答
0

尝试在图表定义中添加以下 2 个属性:

exportAtClient='0' exportAction='download'

这应该确保正在使用导出处理程序。

于 2013-06-11T20:53:35.660 回答