我有问题并尝试了不同的解决方案,但没有成功。 我有一个amChartXY图表,它有白色标签,图例文字是白色的,但是当我想构建自定义pdf报告时,我无法将这些白色文本转换为黑色。 首先我有一个函数将图表导出到base64字符串,我想在那里将文本颜色转换为黑色,但它不会起作用。 这是一个菜单项的代码片段,它转换为保存到全局数组对象的SVG。
menu: [
{
class: "",
label: "Save to draft",
click: function() {
var overrideObject = {
backgroundColor : "rgba(255,255,255,1)",
color : "#000",
legend : {
color : "#000"
}
};
var chartObject = this;
chartObject.capture(overrideObject, function () {
chartObject.toJPG({}, function (base64) {
// charts is global array
charts.push({
name: customName,
chart: base64
});
});
});
}
},
此处overrideObject
正在将backgroundColor属性更改为白色(之前是透明的),但它不会更改字体颜色。此外,我已尝试添加不同的属性,但似乎没有任何工作。
在捕获时这可能吗?
答案 0 :(得分:2)
您传递的overrideObject只接受in the list of export settings列出的相同参数。如果您需要更改图表上特定元素的外观,则需要使用the annotation settings section中提到的reviver
回调来有选择地应用您的修改。例如,以下是如何定位值轴标签:
"export": {
"enabled": true,
"reviver": function(nodeObj) {
if (nodeObj.className === 'amcharts-axis-label' && nodeObj.svg.parentNode.classList.contains('amcharts-value-axis')) {
nodeObj.fill = 'rgba(255,0,0,1)';
}
},
// ...
}
请注意,您需要使用SVG属性来更改外观,因此您必须设置填充以更改文本元素的颜色。