Quiero convertir un Grafico (WebChart) a una imagen

Que tal companeros, quisiera saber si hay forma de convertir un WEBCHART a una imagen con el fin de imprimirla quiza en un PDF. Estoy usando Xojo 2020r2.1

Agradezco sus comentarios.

No estoy en el ordenador ahora mismo, pero debe de haber una manera de llamar a la API de ChartJS, para recuperar un PNG en Base64.

var b64Data = myChart.toBase64Image();

Click HERE for a JS sample

1 Like

Teniendo una estructura como esta:

En el evento Button1.Pressed puedes poner este código:

Var js() As String

js.Add("Chart.helpers.each(Chart.instances, (instance) => {")
js.Add("  var parent = instance.canvas.closest('.XojoCharts').id || '';")
js.Add("  if (parent === '" + Chart1.ControlID + "') {")
js.Add("    XojoWeb.session.storage.setItem('chart-png', instance.toBase64Image(), true);")
js.Add("    XojoWeb.session.storage.getItem('chart-png', true);")
js.Add("  }")
js.Add("});")

ExecuteJavaScript(String.FromArray(js))

Y en Session.RequestedData:

Select Case Key
Case "chart-png"
  Var imageData As String = DecodeBase64(Value.Replace("data:image/png;base64,", ""))
  WebPage1.ImageViewer1.Picture = New WebPicture(imageData, "chart.png")
End Select

He creado un Feature Request para añadirle un método a WebChart y que sea mucho más sencillo:
Issue #72195

4 Likes

Agradezco tu apoyo Ricardo, estaria super si existiese ese metodo! Saludos y nuevamente gracias.