没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|使用教程|编辑:龚雪|2014-07-30 10:36:25.000|阅读 1330 次
概述:本文讲解使用Highcharts最新的版本4.03,解决其在.net下本地导出图片出现BUG的问题,在分析中有提供效果图和代码,遇到此类问题的朋友或是想研究Highcharts的朋友,可以参考。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
现在Highcharts最新的版本是4.03,这JavaScript插件居多优点就不比多说了(Highcharts插件下载),demo官网上也很详细。但是优点不爽的地方是,导出图片这个功能是通过请求官网的服务器地址下载的,这个就有点不爽了,因为很多系统要求的环境是不联网就能使用的,本人英语很挫,开始不知道官网的下载页面,下面会提供第三方的解决办法,自己在Google大神上面找了很久,最后找到了一个外国人写的一Demo,Highcharts-export-module-asp.net-master.zip 。当时,心中窃喜,踏破铁鞋无觅处,得来全不费工夫,果断下载,看效果。
两个地方有点瑕疵。
咋办?!不能用。
先试试连官网导出有木有同样的问题,结果官网一切ok.
然后Google下,没有发现有人遇到同样的情况。So…..自己分析。
这里发现了内容有些不一样:
所有线导出,在svg这里xml里,有个 class="highcharts-series-group"的g 节点下面的子节点g 的属性 visibility="visible",而去掉一根线的话,这个值是hidden,ok这里的问题找到了,第三方的Demo对这个属性没有做区分处理。
还有一个bug,经分析得知,那是属性class="highcharts-tooltip"的g节点,这个分析没有其他办法,只有一个个节点去删,然后保存看效果。
OK!!!
所有问题都已找到,下面要做的无非就是对xml做筛选,然后remove掉这几个特殊属性的节点,代码如下:
在Tek4.Highcharts.Exporting. Exporter下的CreateSvgDocument
方法中增加如下代码:
XmlDocument xml = new XmlDocument(); xml.LoadXml(this.Svg); XmlNodeList nodeListAllg = xml.GetElementsByTagName("g"); Dictionary<int, XmlNode[,]> dic = new Dictionary<int, XmlNode[,]>(); int i = 0; foreach (XmlNode xNod in nodeListAllg) { i++; XmlNode xmlvisibility = xNod.Attributes.GetNamedItem("class"); if (xmlvisibility != null && xmlvisibility.Value == "highcharts-series-group") { foreach (XmlNode xNod2 in xNod.ChildNodes) { i++; XmlNode xmlvisibility1 = xNod2.Attributes.GetNamedItem("visibility"); if (xmlvisibility1 != null && xmlvisibility1.Value == "hidden") { XmlNode[,] xmln = new XmlNode[1, 2]; xmln[0, 0] = xNod; xmln[0, 1] = xNod2; dic.Add(i, xmln); } } } else if (xmlvisibility != null && xmlvisibility.Value == "highcharts-tooltip") { XmlNode[,] xmln = new XmlNode[1, 2]; xmln[0, 0] = xml.FirstChild; xmln[0, 1] = xNod; dic.Add(i, xmln); } } foreach (KeyValuePair<int, XmlNode[,]> a in dic) { a.Value[0, 0].RemoveChild(a.Value[0, 1]); } this.Svg = xml.OuterXml;
相关教程:
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
PDF文件因其高度的跨平台兼容性和安全稳定的格式特点,广泛应用于企业文档管理和电子资料传输中。本文将详细讲解如何使用 Spire.PDF for .NET 库在C# 中实现多种PDF拆分功能,包含按每页拆分、按页码范围拆分、按关键字拆分及提取指定页面等场景的完整示例代码,帮助开发者轻松掌握高效的PDF分割技巧,优化文档管理流程。
本文主要介绍如何使用DevExpress WPF Grid控件获取节点,欢迎下载最新版组件体验!
通过将绘图转换为 Photoshop 格式,您可以轻松编辑和增强设计。Aspose.CAD是一款功能强大的 SDK,可无缝实现此转换。借助Aspose.CAD for Python via .NET,开发人员可以自动化转换过程,从而节省时间并减少错误。本博客将指导您如何使用 Python 将绘图转换为 Photoshop。
本教程主要为大家介绍DevExpress WinForms Tile(平铺)视图的基础知识,欢迎下载最新版组件体验!
纯JavaScript编写的开源股票图表控件
Highcharts纯JavaScript编写的开源图表库,为你的Web应用程序提供直观的、交互式图表
Highmaps一个基于web项目创建地图的HTML5/JavaScript地图组件
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号