Jump to content
Fórum Script Brasil
  • 0

[Resolvido]Gerando PDF com marca de fundo e texto bem formatado


jefponte

Question

O sistema que eu criei ficou bem interessante. Estou doando para uma escola de uma prefeitura. Já está sendo utilizado aqui na escola onde eu trabalho, mas estou com alguns problemas.

No sistema eu acrescento aluno, informações, gerencio turmas e gero declaração e histórico com a ferramenta dompdf. Mas eu não sei usar a biblioteca direito, existem mistérios que não consegui resolver.

1. Sempre que gero o PDF da declaração eu tenho o terrível problema da letra que cai em baixo. Ele quebra a palavra no final da linha e deixa a ultima letra em baixo na outra linha. Eu já forcei de diversas formas. Atributo jistify ou center, coloquei o texto todo em uma tabela invisível. Isso ajudou a alinhar o texto no centro da página, mas ele faz separações silábicas horrendas por causa do final da linha. Não sabe colocar a palavra toda na próxima linha ou separar direitinho.

2. A parte do histórico está mais difícil ainda. Preciso gerar um histórico com a grade de notas, mas no fundo deve existir um brasão do estado do ceará. É padrão. Tem também que ter o nome das matérias no sentido vertical, letras inclinadas, deitadas. Tipo no modelo da imagem no link: http://mvline.com.br/frente.jpg

Talvez a biblioteca dompdf não seja muito boa ou então eu não sei usar os muitos mecanismos que estão aí disponíveis.

Preciso de ajuda, e isso ajudará muitas pessoas, pois o histórico aqui é feito a mão e existem muitos históricos a serem feitos e pais de alunos pedindo todos os dias, mais de 700 só do ano passado.

Se alguém quiser dar uma olhada, aqui está o código que uso para gerar a declaração.

<?php

require_once("dompdf/dompdf_config.inc.php");

$alunoid=$_GET['alunoid'];

$con = mysql_connect("localhost","oreidosl_root","cocacola@12");
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}

mysql_select_db("sfdc", $con);

$sql = "SELECT * From alunos Where id=$alunoid";


$query = mysql_query($sql);
while ($mostrar = mysql_fetch_assoc($query))

{


$turma= $mostrar['turma'];
$anodeestudo=$mostrar['ano'];

$datadenascimento=$mostrar['nascimento'];



$nascimento= substr($datadenascimento,8,2) . "/" .substr($datadenascimento,5,2) . "/" . substr($datadenascimento,0,4);;
$aluno=$mostrar['aluno'];
$pai=$mostrar['pai'];
$mae=$mostrar['mae'];
$localizacao=$mostrar['local'];


if ($localizacao=='Corrente')
{
$situacao= '&eacute;';

}
else{
$situacao='foi';    
    
}

    

    
}

date_default_timezone_set('America/Sao_Paulo');


$dia = date('d');
$ano = date('Y');
$mes = date('M');
$mess = array("Jan" => "janeiro", "Feb" => "fevereiro", "Mar" => "Mar&ccedil;o", "Apr" => "Abril", "May" => "maio", "Jun" => "junho", "Jul" => "julho", "Aug" => "agosto", "Sep" => "setembro", "Oct" => "outubro", "Nov" => "novembro", "Dec" => "dezembro");



//$data é o que aparece na data final
$data= $dia.' de '.$mess["$mes"].' de '.$ano; 

$html = '
        
        <html><head>
        </head>    
        <body>


        <br><br><br>
        <TABLE BORDER=0 width="500" cellspacing="0"  align="center">
        <!-- Abre linha -->
        <TR><TD width="50"><img src="caucaia.jpg" width="40" /></TD><TD width="350"> 
        
        
        <h1 style="text-align: center;"><span style="font-size: small;"><strong><span style="font-size: x-small;">GOVERNO MUNICIPAL DE&nbsp;</span><br /><span style="font-size: xx-large;">CAUCAIA</span></strong><br /><span style="font-size: x-small;"><span style="font-weight: normal;">SECRETARIA MUNICIPAL DE EDUCA&Ccedil;&Atilde;O</span><br /><strong>E. E. I. E. F. S&Atilde;O FRANCISCO DAS CHAGAS</strong><br /><span style="font-weight: normal;">RUA: E-27, N&ordm; 138 - PARQUE ARATURI<br />FONE: 3294-6684</span></span></span></h1>
        
        
        </TD><TD width="50">&nbsp;</TD ></TR>
        <!-- Fecha Linha -->
        
        
        <TR><TD>&nbsp;</TD><TD>
        
        <br><br><br><br><br><br><br><br>
        
        
        
<p><span style="font-size: medium;">Declaro para os devidos fins que '.$aluno.' nascido em                 '.$nascimento.' , filho(a) de '.$mae.' e de '.$pai.', '.$situacao.'  devidamente matriculado                          na turma '.$turma.', nesta institui&ccedil;&atilde;o de ensino, no ano de '.$anodeestudo.'. </span></p>
<p><span style="font-size: medium;"><br /></span></p>
<p><span style="font-size: medium;"><br /></span></p>
<p><span style="font-size: medium;"><br /></span></p>
<p class="MsoNormal"><span style="font-size: medium;"><br /></span></p>
<p class="MsoNormal"><span style="font-size: medium;">O presente documento n&atilde;o contem emendas ou rasuras.         <br />INEP da Escola: 23269944.</span></p>
        
        
        
        
        
        
        </TD><TD>&nbsp;</TD></TR>
        
        <TR><TD> &nbsp;</TD><TD><br><br><br><br><br><br><br><br> 
        <p class="MsoNormal" align="right"><span>Caucaia, '.$data.'</span></p> 
        </TD><TD>&nbsp;</TD ></TR>
        </TABLE>

        ';
    






$dompdf= new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("declaracao.pdf");


?>

Desde já agradeço a quem tentar ler o post ou tentar me ajudar.

Edited by jefponte
Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

O primeiro problema foi resolvido.

Na versão alfa do DomPDF o texto não sai direito, as palavras em quase todas as linhas são quebradas indevidamente. Mas isso não ocorre na versão nova, beta.

Essa versão, dompdf_0-6-0_beta3.tar.gz, ela não apresenta esse erro, não faz a quebra de palavra indevidamente.

Agora falta saber colocar as letras dos nomes das matérias deitadas e a marca de fundo do brasão do Estado do Ceará. Feito isso, pronto.

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.



  • Forum Statistics

    • Total Topics
      152k
    • Total Posts
      651.6k
×
×
  • Create New...