我们有一个C#和JavaScript应用程序,它使用chart.js来创建图表。我们要求将该图像复制到剪贴板以粘贴到PowerPoint中。
由于JavaScript中的安全限制,我们的解决方案是使用toBase64Image将图表转换为图像,并在用JavaScript创建的弹出窗口中显示该图像。用户可以使用Edge或IE11右键单击并选择复制或复制图像(取决于浏览器),以便他们可以将其粘贴到PowerPoint中。
将图像粘贴到PowerPoint,Paint或Excel(它在Word中正常工作)时会出现问题。背景颜色从白色变为黑色。它不是负像,因为图像的所有其他颜色保持不变。问题是图表的某些部分以黑色开头,而黑色背景则会丢失。
我寻找代码来抢先改变背景颜色,看看是否会有所帮助,但我还没有成功实现我发现的任何代码。
我需要的是能够复制图像并将其粘贴到具有白色背景的PowerPoint中。
透明背景偶尔会显示为黑色。
This chart.js GH issue有用于设置背景颜色的代码片段。
Chart.plugins.register({
beforeDraw: function(chartInstance) {
var ctx = chartInstance.chart.ctx;
ctx.fillStyle = "white";
ctx.fillRect(0, 0, chartInstance.chart.width, chartInstance.chart.height);
}
});