Ir para conteúdo
Fórum Script Brasil
  • 0

GRAFICO PDF (PHPLOT + FPDF) ERRO


And_roid

Pergunta

Pessoal, Boa noite!

 

Preciso de uma IMENSA ajuda com uma GIGANTESCA urgência...

 

Preciso montar relatórios em gráficos que são exportados para PDF...

 

1º Montar os gráficos com o PHPLOT - OK Isso eu consegui.

 

2º Transferir ele para PDF com o FPDF, a que pegou, talvez a montagem do script esteja errada, segue:

 

 

grafPontos.php

<?php
//incluir o arquivo do phplot
include "../../Classes/phplot-6.2.0/phplot.php";

// Conecta com servidor MySQL
mysql_connect('localhost', 'root', "") or die(mysql_error());
// Conecta ao Banco MYSQL
mysql_select_db('banco') or die(mysql_error());


$sql = "SELECT COLABORADOR, sum(POUNTUACAO) as POUNTUACAO from RESULT_QUIZ";
$sql .= " group by COLABORADOR;";
$query =  mysql_query($sql);

$grafico = new PHPLOT(700,250); //defini as dimensões do grafico

$data = array();

while($ver=mysql_fetch_array($query))
{
$data[] = array($ver['COLABORADOR'],$ver['POUNTUACAO']);
}

$grafico->SetTitleColor('#404040'); // Cor do titulo do grafico

$titulo = utf8_decode("Pontuação por Usuário");
$grafico->SetTitle($titulo); // titulo do Grafico

$grafico->SetFileFormat("png"); //seleciona o formato de saida do grafico

$grafico->SetImageBorderType('plain'); // Define o estilo da borda

$grafico->SetBackgroundColor('YellowGreen'); // Define a cor de fundo do grafico

$grafico->SetplotType('bars'); // Seleciona o tipo do grafico, pode ser PIE, BARS, LINES e etc

$grafico->SetDataType('text-data');

$grafico->SetYDataLabelPos('plotin');

$grafico->SetDataValues($data);

$grafico->SetBackGroundColor("white");

$grafico->SetDataColors('SkyBlue');

$grafico->SetOutputFile('grafPontos.png');

$grafico->DrawGraph(); //gera o grafico
?>

PDFPontos.php

<?
 
 //gerar grafico
 include "grafPontos.php";
  
 //inclusão da classe fpdf
 include "../../Classes/fpdf17/fpdf.php";
  
  //criar um objeto para gerar o arquivo pdf
 $relPDF = new fpdf();
 
 // pagina no formato retrato (Portrait) , tipo A4
 $relPDF->addPage('P','A4');
  
  
 //setar um estilo de fonte, fonte verdana, estilo bold "negrito", tamanho 14
 $relPDF->setFont('Times','b','16');
 $titulo = utf8_decode('Relatório de Pontuação');
 $relPDF->Cell(0 , 0, $titulo , 0, 5, 'C');
  
  //espaço de 10 linhas;
  $relPDF->ln(5);
  
 //setar um estilo de fonte, fonte verdana, estilo bold "negrito", tamanho 14
 $relPDF->setFont('Times','b','14');
  
 //o método multicell permite escrever em varias linha sem quebrar a célula
  
 $texto = utf8_decode('Relatório bimestral com apresentação das vendas dos meses de Janeiro e Fevereiro. O gráfico abaixo apresenta os valores de cada mês dos vendedores Pedro e Paulo.');
 $relPDF->multicell(0, 5, $texto , 0 , 'J');
  
 //espaço de 10 linhas;
 $relPDF->ln(10);
  
 //imprime a imagem no arquivo PDF
 $relPDF->Image('grafPontos.png',60,30,null,null,'PNG');
  
  
  //espaço de 80 linhas;
  $relPDF->ln(80);
   
  $relPDF->setFont('Times','i','8');
   
  $autor= 'Marcelo Weihmayr';
  $blog = 'http://ubuntuiniciantes.blogspot.com';
  $faceboock ='http://www.facebook.com/iniciantes.doubuntu';
  $twitter = 'https://twitter.com/'; 
   
  $relPDF->cell(0, 5, 'Autor: '.$autor, 0 , 5,'R');
  $relPDF->cell(0, 5, 'Blog : '.$blog, 0 , 5,'R');
  $relPDF->cell(0, 5, 'Facebook : '.$faceboock, 0 , 5,'R');
  $relPDF->cell(0, 5, 'Twitter  : '.$twitter, 0 , 5,'R');
  
 // saida para downlod do arquivo
 $relPDF->output();
 ?>

Resultado:

Citar

 

PHP Warning: fopen(grafPontos.png) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in E:\Domains\mscmarket.com.br\wwwroot\Classes\fpdf17\fpdf.php on line 1232

 

Linha 1232 do FPDF ($f = fopen($file,'rb') wink.png

function _parsepng($file)
{
	// Extract info from a PNG file
	$f = fopen($file,'rb');
	if(!$f)
		$this->Error('Can\'t open image file: '.$file);
	$info = $this->_parsepngstream($f,$file);
	fclose($f);
	return $info;
}

Preciso MT MT MT MT da ajuda de vocês, a apresentação do meu tcc é Terça-feira :/

 

 

Grato desde já!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Na linha:

<?php
    (...)
    //imprime a imagem no arquivo PDF
    $relPDF->Image('grafPontos.png',60,30,null,null,'PNG');

Tens de indicar o caminho para a imagem na estrutura de pastas do teu projecto. Caso contrário o script vai procurar a imagem na pasta da biblioteca FPDF. Se precisares de ajuda vê este exemplo.

Link para o comentário
Compartilhar em outros sites

  • 0

Na linha:

<?php
    (...)
    //imprime a imagem no arquivo PDF
    $relPDF->Image('grafPontos.png',60,30,null,null,'PNG');

Tens de indicar o caminho para a imagem na estrutura de pastas do teu projecto. Caso contrário o script vai procurar a imagem na pasta da biblioteca FPDF. Se precisares de ajuda vê este exemplo.

Vlwwww

 

Agora tenho outro problema :/

 

Quando eu coloco:

$relPDF->Image('../../Paginas/relatorios/grafPontos.php','grafPontos.png',60,30,null,null,'PNG');

Ele retorna:

FPDF error: Unsupported image type: php

 

Agora, quando eu mudo para .png ele diz:

PHP Warning:  fopen(../../Paginas/relatorios/grafPontos.png) [<a href='function.fopen'>function.fopen</a>]: failed to open stream: No such file or directory in E:\Domains\mscmarket.com.br\wwwroot\Classes\fpdf17\fpdf.php on line 1232

Busquei uma imagem no google, coloquei o link e funcionou, será que o problema poderia ser com o output do Grafico?

 

<?php
//incluir o arquivo do phplot
include "../../Classes/phplot-6.2.0/phplot.php";

// Conecta com servidor MySQL
mysql_connect('localhost', 'root', "") or die(mysql_error());
// Conecta ao Banco MYSQL
mysql_select_db('banco') or die(mysql_error());


$sql = "SELECT COLABORADOR, sum(POUNTUACAO) as POUNTUACAO from RESULT_QUIZ";
$sql .= " group by COLABORADOR;";
$query =  mysql_query($sql);

$grafico = new PHPLOT(700,250); //defini as dimensões do grafico

$data = array();

while($ver=mysql_fetch_array($query))
{
$data[] = array($ver['COLABORADOR'],$ver['POUNTUACAO']);
}

$grafico->SetTitleColor('#404040'); // Cor do titulo do grafico

$titulo = utf8_decode("Pontuação por Usuário");
$grafico->SetTitle($titulo); // titulo do Grafico

$grafico->SetFileFormat("png"); //seleciona o formato de saida do grafico

$grafico->SetImageBorderType('plain'); // Define o estilo da borda

$grafico->SetBackgroundColor('YellowGreen'); // Define a cor de fundo do grafico

$grafico->SetplotType('bars'); // Seleciona o tipo do grafico, pode ser PIE, BARS, LINES e etc

$grafico->SetDataType('text-data');

$grafico->SetYDataLabelPos('plotin');

$grafico->SetDataValues($data);

$grafico->SetBackGroundColor("white");

$grafico->SetDataColors('RoyalBlue2');

$grafico->SetOutputFile('grafPontos.png');

$grafico->DrawGraph(); //gera o grafico
?>

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...