Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ocdigital

Conversão HTML em PDF

Recommended Posts

Bom dia Pessoal, estou desenvolvendo uma aplicação em php que faz a geração do gráfico das notas do aluno porém preciso converter o boletim em pdf para enviar no email do aluno, porém quando vou converter em PDF o gráfico não converte, ja tentei vários tipos de conversores, só funciona fazendo uma impressão como DoroPDF mais são muitos e queria deixar isso dinâmico, alguém tem alguma ideia?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já deu uma olhada no fórum de artigos ?

 

Considere ler: :sea: http://forum.imasters.com.br/topic/489419-exportando-relatrio-para-pdf/

 

Abraço.



Se seu problema for gerar os gráficos dinamicamente, diga como está fazendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então...

 

esse é o arquivo que gera o gráfico (getGraph.php) que ultiliza o phplot

<?php
require_once 'phplot.php';
include'conexao.php';
/*Busca informaçãoes do banco*/
$myQuery = "Select valor From notas where ra = 20130001";
$consultar = mysql_query($myQuery); 
$i = 1;
while($resultado = mysql_fetch_array($consultar)){
	$nota[$i] = $resultado['valor'];
	$i++;
}
/*Cria uma array com os dados*/
$notasInt = join(",", array($nota[1],$nota[2]));
$notasInt = "[$notasInt]";


/*Busca informaçãoes do banco*/
$myQuery1 = "Select media From medias where idserie = '1' ";
$consultar1 = mysql_query($myQuery1); 
$j = 1;
while($resultado1 = mysql_fetch_array($consultar1)){
	$media[$j] = $resultado1['media'];
	$j++;
}
/*Cria uma array com os dados*/
$mediasInt = join(",", array($media[1],$media[2]));
$mediasInt = "[$mediasInt]";


$data = array(
				array('Interdisciplinar' , $nota[1],$media[1]),
				array('Quimica' , $nota[2],$media[2]  ),
				array('Geografia' , $nota[3],$media[3]),
				array('Fisica' , $nota[4],$media[4] ),
				array('Biologia' , $nota[5],$media[5] ),
				array('Historia' , $nota[6],$media[6] ),
				array('Matematica' , $nota[7],$media[7] ),
				array('Portugues' , $nota[8],$media[8] ),
				array('Ingles' , $nota[9],$media[9] )
				
			);	
# Cria um novo objeto do tipo PHPlot com 500px de largura x 350px de altura				
$plot = new PHPlot(800 , 350);	
$legend_text = array('Aluno', 'Media');

// Organiza Gráfico -----------------------------
$plot->SetTitle('Gráfico de desempenho');
# Precisão de uma casa decimal
$plot->SetPrecisionY(1);
# tipo de Gráfico (poderia ser linepoints por exemplo)
$plot->SetPlotType("bars");
# Tipo de dados que preencherão o Gráfico text(label dos anos) e data (valores de porcentagem)
$plot->SetDataType("text-data");
# Adiciona ao gráfico os valores do array
$plot->SetDataValues($data);
$plot->SetLegend($legend_text);
// -----------------------------------------------

// Organiza eixo X ------------------------------
# Seta os traços do eixo X para invisível
$plot->SetXTickPos('none');
# Texto abaixo do eixo X
$plot->SetXLabel("");
# Tamanho da fonte que varia de 1-5
$plot->SetXLabelFontSize(2);
$plot->SetAxisFontSize(2);
// -----------------------------------------------

// Organiza eixo Y -------------------------------
# Coloca nos pontos os valores de Y
$plot->SetYDataLabelPos('plotin');
// -----------------------------------------------

// Desenha o Gráfico -----------------------------
$plot->DrawGraph();
// -----------------------------------------------
?>

 

e uso o DomPdf para gerar um pdf e gravar na pasta

 

<?php 

$html = '
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
	</head>
	<body>
	<h3>Teste</h3>
		<div style="width:800px;margin:0 auto;"	>
			<fieldset>
		 		<img src="getGraph.php"/>
	 		</fieldset>		
	 				
		</div>
	</body>
</html>
';
	
	require_once("../dompdf_config.inc.php");
	 
	$dompdf = new DOMPDF();
	$dompdf->load_html($html);
	$dompdf->set_paper('letter', 'landscape');
	$dompdf->render();
	$pdf = $dompdf->output();
    file_put_contents("arquivo.pdf", $pdf);
	echo "Arquivo gerado"
	?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vai funcionar assim ele vai pegar os valores das notas dos alunos pelo RA que é a chave entre as notas e nome dos alunos e gerar um arquivo para cada aluno por exemplo : 20010001.pdf e dai outra classe php vai enviar esse arquivo para o email cadastro para esse aluno .. mas o problema é que não sai o gráfico no PDF.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sinto que ele realmente não vai gerar deste modo, pois a tag img ler o que o arquivo php gera.

 

Vamos tentar especificar com o header o tipo de arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o que te retorna, execute do jeito que aí está.

<?php
header("Content-type: image/png");
$html = '
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    </head>
    <body>
    <h3>Teste</h3>
        <div style="width:800px;margin:0 auto;"    >
            <fieldset>
                 <img src="getGraph.php"/>
             </fieldset>

        </div>
    </body>
</html>
';

    require_once("../dompdf_config.inc.php");
    date_default_timezone_set('America/Sao_Paulo');
    $dompdf = new DOMPDF();
    $dompdf->load_html($html);
    $dompdf->set_paper('letter', 'landscape');
    $dompdf->render();

    $dompdf->stream(date('d/m/Y').'_cliente.pdf');
    ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Até q enfim , Resolvi..... pra quem se intessar segue:

no arquivo que gera o pdf deve se ultilizar o caminho completo do arquivo do gráfico:

 

Ao invés de:

<img src="getGraph.php"/>

Ultilizar:

<img src="http://localhost:8080/phplot/www/getGraph.php"/>

 

e no arquivo dompdf_config.inc.php,habilitar a opção Remote:

def("DOMPDF_ENABLE_REMOTE", true);

 




			
		

Compartilhar este post


Link para o post
Compartilhar em outros sites

e o fantasma volta a pra assombrar ...rsrsrs, Pessoal o sistema esta funcionando perfeitamente em LOCALHOST (Wamp), porém preciso que seja online, agora que subi os arquivos no server da hospedagem o dompdf não consegue mais inserir as imagens , acho que tem haver com o TEMP dessa imagem, más não estou conseguindo resolver...

 

Segue o erro

 

Image not readable or empty
ja tentei colocar uma jpeg no lugar do pdf mas também dá o mesmo erro

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.