Jump to content
Fórum Script Brasil
  • 0

GRAFICO PDF (PHPLOT + FPDF) ERRO


And_roid
 Share

Question

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 to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.1k
×
×
  • Create New...