Foros del Web » Programando para Internet » PHP »

guardar graficas de google

Estas en el tema de guardar graficas de google en el foro de PHP en Foros del Web. Hola a todos, tengo una aplicación PHP la cual genera un informe final mostrando unas graficas de gogle (google chart api). Para mostrar en la ...
  #1 (permalink)  
Antiguo 21/07/2009, 14:58
 
Fecha de Ingreso: abril-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
guardar graficas de google

Hola a todos,

tengo una aplicación PHP la cual genera un informe final mostrando unas graficas de gogle (google chart api). Para mostrar en la web las gráficas no tengo ningun problema.

El problema viene cuando necesito guardar esa grafica generada en el servidor como un archivo físico, es decir, con extendion jpg, o gif o png...

Todo viene porque esas graficas generadas no son imagenes reales, sino scripts, mirar como queda el código de una de estas graficas de google:

h t t p : / / chart.apis.google.com/chart?cht=p3&chd=t:90,49&chs=350x150&chl=Foo|Bar

Es decir, en el img src del codigo fuente queda así:

<img src="h t t p : / / chart.apis.google.com/chart?cht=p3&chd=t:90,49&chs=350x150&chl=Foo|Bar">

Como veis, no es una imagen real, física, no tiene extensión.

Entonces el problema es que si quiero pasarlo a PDF con FPDF por ejemplo, no puedo ya que no me reconoce el formato, al no tener extension.

Por eso pensé que lo mejor sería poder guardar esa gráfica en el server de alguna forma.

Estoy utilizando el siguiente código, que si bien funciona con una imagen real de origen, no funciona para este tipo de imágenes "virtuales".

Os lo dejo aqui a ver si teneis alguna sugerencia. Quizá con u upload? pero como debería hacerlo?

Gracias de antemano por vuestra ayuda y espero vuestras respuestas:

Saludos!!!

CÓDIGO PHP:
---------------------------------------------

<?php
// config --

//CON LA IMAGEN DE LA LINEA DE ABAJO NO FUNCIONA
$src = array ("h t t p : / / chart.apis.google.com/chart?cht=p3&chd=t:90,49&chs=350x150&chl=Foo|Bar") ;

//CON LA IMAGEN DE LA LINEA DE ABAJO SI QUE FUNCIONA
//$src = array ("google.com/images/logo_sm.gif");


$under = 0; // combine images underneath or not?
// -- end of config

$imgBuf = array ();
$maxW=0; $maxH=0;
foreach ($src as $link)
{
switch(substr ($link,strrpos ($link,".")+1))
{
case 'png':
$iTmp = imagecreatefrompng($link);
break;
case 'gif':
$iTmp = imagecreatefromgif($link);
break;
case 'jpeg':
case 'jpg':
$iTmp = imagecreatefromjpeg($link);
break;
}

if ($under)
{
$maxW=(imagesx($iTmp)>$maxW)?imagesx($iTmp):$maxW;
$maxH+=imagesy($iTmp);
}
else
{
$maxW+=imagesx($iTmp);
$maxH=(imagesy($iTmp)>$maxH)?imagesy($iTmp):$maxH;
}

array_push ($imgBuf,$iTmp);
}

$iOut = imagecreate ($maxW,$maxH) ;

$pos=0;
foreach ($imgBuf as $img)
{
if ($under)
imagecopy ($iOut,$img,0,$pos,0,0,imagesx($img),imagesy($img) );
else
imagecopy ($iOut,$img,$pos,0,0,0,imagesx($img),imagesy($img) );
$pos+= $under ? imagesy($img) : imagesx($img);
imagedestroy ($img);
}

imagegif($iOut, "imagen1.gif", 90);


?>
------------------------------------------------
FIN CODIGO PHP.
-------------------------------------------------

  #2 (permalink)  
Antiguo 22/07/2009, 09:15
 
Fecha de Ingreso: abril-2008
Mensajes: 8
Antigüedad: 16 años
Puntos: 0
Respuesta: guardar graficas de google

Hola alguien sabe como hacer esto, por favor??
  #3 (permalink)  
Antiguo 25/06/2015, 01:31
 
Fecha de Ingreso: junio-2015
Mensajes: 1
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: guardar graficas de google

Hola.

Tenía el mismo problema y he encontrado una solución que os podrá servir. Se que esto hace tiempo ya, pero seguro que a dia de hoy (JUN 2015) todavía puede ser necesario.

He encontrado esto:
http://www.comolohago.cl/como-crear-graficos-mediante-php/
Genera gráficas desde servidor, y no desde cliente como Google Charts

Para convertirlo en PDF con PHP podemos usar FPDF o DOMPDF.

Un ejemplo basico:
http://www.avantisrating.es/pruebas_pdf/test1.php
Hace un download de un PDF

Espero que os sirva!
Salud!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:19.