Диаграммы Google как изображение

Я пытаюсь использовать графики Google для встраивания изображений диаграмм в сообщения электронной почты. Поэтому каждый пользователь будет иметь уникальный график.

Можно ли использовать API и внедрить уникальный URL-адрес, который будет отображать диаграммы и доставлять изображение клиенту электронной почты.

Ответ 1

Можно создать URL-адрес, который будет отображать изображение диаграммы с помощью Google Chart Wizard. Тем не менее, эта служба недавно (апрель, я считаю), потому что устарела. Он по-прежнему работает нормально, но для долгосрочного решения вам, возможно, придется придумать другой метод.

Edit

Другим методом было бы сгенерировать изображение и сохранить его на сервере перед отправкой электронной почты. Вы можете сделать это, указав страницу на своем сервере, посвященную генерации диаграммы, разобрав данный слизень, и когда график загружен, отправьте запрос POST с данными изображения. Вы можете получить доступ к URI данных, используя скрытый холст (требуется HTML5) и canvg плагин javascript:

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");

Ответ 2

Вы можете получить PNG-версию своего графика, используя chart.getImageURI(), как показано ниже:

Нужно быть после рисования графика, поэтому в событии 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);

Ответ 3

Немного поздно для вечеринки, но мы просто построили https://ChartURL.com для этой конкретной потребности, потому что, несмотря на то, что этот вопрос составляет почти 3,5 года, лучшее решение там, пока ChartURL не был устаревшим API графических изображений Google:)

Надеюсь, это поможет кому-то!