2012-07-02 12 views
11

Intento utilizar Google charts para incrustar imágenes de gráficos en los correos electrónicos. Entonces cada usuario tendrá un gráfico único.Gráficos de Google como Imagen

¿Podemos utilizar la API e insertar una URL única que represente los gráficos y entregue una imagen al cliente de correo electrónico.

+0

la función de gráficos de imagen de los gráficos de google funciona como una delicia, consulte http://datamakessense.com/kpi-emails-with-google-charts-url-parameters – AdrianBR

Respuesta

4

Es posible generar una url que represente una imagen de un gráfico con el Google Chart Wizard. Sin embargo, ese servicio recientemente (abril creo) porque está en desuso. Todavía funciona bien, pero para una solución a largo plazo, es posible que tenga que idear otro método.

Editar

Otro método sería generar la imagen y guardarla en el servidor antes de enviar el correo electrónico. Puede hacerlo teniendo una página en su servidor dedicada a generar el gráfico mediante el análisis de un slug determinado, y cuando se carga el gráfico, envíe una solicitud POST con los datos de imagen. Puede acceder a la URI de datos mediante el uso de un lienzo oculto (HTML5 se requiere) y el canvg Javascript plugin:

chart_area = document.getElementById("chart_div").getElementsByTagName('iframe')[0].contentDocument.getElementById("chartArea"); 
svg = chart_area.innerHTML; 
canvas = document.getElementById("hidden_canvas"); 
canvas.setAttribute('width', chart_area.offsetWidth); 
canvas.setAttribute('height', chart_area.offsetHeight); 

canvg(canvas, svg); 
image_data_uri = canvas.toDataURL("image/png"); 
+1

¿alguna otra alternativa? –

7

, usted puede obtener una versión PNG de su carta utilizando chart.getImageURI() como siguiente:

necesita ser después de dibujar el gráfico, también en el evento ready

var my_div = document.getElementById('my_div'); 
var my_chart = new google.visualization.ChartType(chart_div); 

google.visualization.events.addListener(my_chart, 'ready', function() { 
    my_div.innerHTML = '<img src="' + chart.getImageURI() + '">'; 
}); 

my_chart.draw(data); 
1

Un poco tarde a la fiesta, pero nos acabamos de construir https://ChartURL.com para esta necesidad exacta porque a pesar de ser esta cuestión casi 3,5 años, la mejor solución por ahí hasta ChartURL fue la obsoleta Google Gráficos de imagen API :)

Espero que esto ayude a alguien a salir!

Cuestiones relacionadas