Jump to content
Sign in to follow this  
zulamon

Conversão PHP/PDF

Recommended Posts

zulamon

Boa tarde comunidade

É o seguinte eu tenho um ficheiro php que vai fazer a listagem de todos os ficheiros que estao na tabela da base de dados.

Eu ao ter isto queria fazer uma impressão em PDF, fui buscar uma biblioteca e a partir dai estou a tentar fazer a conversão para pdf mas não tem sido facil. 

Se tivessem algum trabalho ja feito agradecia

Ficheiro: list_record.php (Lista)

<?php 
include("ligacao.php");	
// Ficheiro para fazer a ligação com a BD

/* identificação das variaveis */
$tbl_name = "activos"; // Nome Tabela
$db_name = "bd_activos"; // Base dados

mysql_select_db("$db_name")or die("Erro ao abrir BASE DADOS");
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Gestão Activos</title>
<style type="text/css">

.textos {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #666666;
}
.dados {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #009;
}
.tit_textos {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: bold;
color: #075507;
}
.nomes:link {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #666666;
text-decoration: none;
}
.nomes:visited {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
color: #666666;
background-color: #CCFFFF;
display: block;
text-decoration: none;
}
.nomes:hover {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 11px;
display: block;
background-image: url(imagens/pontos.png);
text-decoration: none;
color: #F60;
}
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
</style>
</head>




<table width="1202" border="0" cellspacing="10" cellpadding="10"  >
<tr>
<td>
<table width="1218" border="1" cellspacing="0" cellpadding="3" >
<tr>
<td colspan="19" align="center"><strong>Lista dos Activos </strong> </td>
</tr>

<tr>
<td align="center" bgcolor="#66CC33"><strong>ID</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Data</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Delegação</strong></td>
<td align="center" bgcolor="#66CC33" ><strong>Referência</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Espaco do Edificio</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Tipo de Equipa</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Marca</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Descrição de Equipa</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Tipo de Acção</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Periocidade</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Executante</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Responsável</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Data manu</strong></td>
<td align="center" bgcolor="#DAEAFF" ><strong>Descr manu</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Anomlias</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Observação</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Alterar</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>PDF</strong></td>

</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>

<tr>
<td><?php echo $rows['id']; ?></td>
<td><?php echo $rows['date']; ?></td>
<td><?php echo $rows['delegacao']; ?></td>
<td><?php echo $rows['referencia']; ?></td>
<td><?php echo $rows['espaedificio']; ?></td>
<td><?php echo $rows['tipequipa']; ?></td>
<td><?php echo $rows['marca']; ?></td>
<td><?php echo $rows['descrequipa']; ?></td>
<td><?php echo $rows['tipoaccao']; ?></td>
<td><?php echo $rows['periocidade']; ?></td>
<td><?php echo $rows['executante']; ?></td>
<td><?php echo $rows['responsavel']; ?></td>
<td><?php echo $rows['datamanu']; ?></td>
<td><?php echo $rows['descmanu']; ?></td>
<td><?php echo $rows['anomalias']; ?></td>
<td><?php echo $rows['obs']; ?></td>

<td align="center"><a href="update.php?id=<?php echo $rows['id']; ?>">Alterar</a></td>
<td align="center"><a href="class.php?id=<?php echo $rows['id']; ?>">Imprimir</a></td>

</tr>
<?php
}
?>

</table>
</td>
</tr>
</table>
<?php
mysql_close();
?>


Ficheiro: class.php (PDF)

<?php 
include("ligacao.php");	

$tbl_name = "activos"; 
$db_name = "bd_activos"; 
mysql_select_db("$db_name")or die("Erro ao abrir BASE DADOS");
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
?>
<?php
ob_start();
?>
<html>
        <head></head>
        <style>
        .textos {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 11px;
        color: #666666;
}
.dados {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 11px;
        color: #009;
}
.tit_textos {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 14px;
        font-weight: bold;
        color: #075507;
}
.nomes:link {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 11px;
        color: #666666;
        text-decoration: none;
}
.nomes:visited {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 11px;
        color: #666666;
        background-color: #CCFFFF;
        display: block;
        text-decoration: none;
}
.nomes:hover {
        font-family: Verdana, Arial, Helvetica, sans-serif;
        font-size: 11px;
        display: block;
        background-image: url(imagens/pontos.png);
        text-decoration: none;
        color: #F60;
}
body {
        margin-left: 0px;
        margin-top: 0px;
        margin-right: 0px;
        margin-bottom: 0px;
}
        </style>
       
<table width="100" border="0" cellspacing="10" cellpadding="5"  >
<tr>
<td>
<table width="100" border="1" cellspacing="0" cellpadding="1.5" >
<tr>
<td colspan="18" align="center"><strong>Lista dos Activos </strong> </td>
</tr>

<tr>
<td align="center" bgcolor="#66CC33"><strong>ID</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Data</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Delegação</strong></td>
<td align="center" bgcolor="#66CC33" ><strong>Referência</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Espaco do Edificio</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Tipo de Equipa</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Marca</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Descrição de Equipa</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Tipo de Acção</strong></td>
<td align="center" bgcolor="#66CC33"><strong>Periocidade</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Executante</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Responsável</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Data manu</strong></td>
<td align="center" bgcolor="#DAEAFF" ><strong>Descr manu</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Anomlias</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Observação</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Alterar</strong></td>
<td align="center" bgcolor="#DAEAFF"><strong>Imprimir</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>


<tr>
<td><?php echo $rows['id']; ?></td>
<td><?php echo $rows['date']; ?></td>
<td><?php echo $rows['delegacao']; ?></td>
<td><?php echo $rows['referencia']; ?></td>
<td><?php echo $rows['espaedificio']; ?></td>
<td><?php echo $rows['tipequipa']; ?></td>
<td><?php echo $rows['marca']; ?></td>
<td><?php echo $rows['descrequipa']; ?></td>
<td><?php echo $rows['tipoaccao']; ?></td>
<td><?php echo $rows['periocidade']; ?></td>
<td><?php echo $rows['executante']; ?></td>
<td><?php echo $rows['responsavel']; ?></td>
<td><?php echo $rows['datamanu']; ?></td>
<td><?php echo $rows['descmanu']; ?></td>
<td><?php echo $rows['anomalias']; ?></td>
<td><?php echo $rows['obs']; ?></td>
</tr>
<?php
}
?>
</table>
</td>
</tr>
</table>
</html>
<?php
$html = ob_get_clean();
mysql_close();

require_once("dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('letter', 'landscape');
$dompdf->render();
$dompdf->stream("exemplo-01.pdf");
?>

Share this post


Link to post
Share on other sites
zulamon

ERRO: Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 79 bytes) in C:\xampp\htdocs\php\codigo\Novaesperiencia\dompdf\include\frame.cls.php on line 169

linha 169 é a ultima

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

Esse erro é normalmente um problema da memória utilizada para gerar o pdf. Como devem ser bastantes dados, consome alguma memoria (aparentemente mais de 128 Mb :|).

A correcção está disponível aqui:

http://paste.portugal-a-programar.org/pastebin.php?show=4003

Eis a diferença do antigo para esta versão:

http://paste.portugal-a-programar.org/pastebin.php?diff=4003

Testa e diz qualquer coisa....

Abraço :P

Share this post


Link to post
Share on other sites
zulamon

testei e estava muito lento a entrar , decidi colocar 512 e agora quando vou a brir é mais rapido e nao me aparece nd!

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

testei e estava muito lento a entrar , decidi colocar 512 e agora quando vou a brir é mais rapido e nao me aparece nd!

Hmmm... se não aparece nada já é um problema diferente...

Se possível, coloca aqui o teu código actualizado.

Share this post


Link to post
Share on other sites
zulamon

Código actualizado

<?php

     include("ligacao.php");
     // Ficheiro para fazer a ligação com a BD

    /* identificação das variaveis */
       $tbl_name = "activos"; // Nome Tabela
       $db_name = "bd_activos"; // Base dados
         
       mysql_select_db("$db_name")or die("Erro ao abrir BASE DADOS");
       $sql="SELECT * FROM $tbl_name";
       $result=mysql_query($sql);
ini_set('memory_limit','512'); # Define o limite de uso da memória em execução para 512 Mb.
         ob_start();
     ?>
       
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

     <html xmlns="http://www.w3.org/1999/xhtml">
      <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>Gestão Activos</title>
    <style type="text/css">
      
    .textos {
        font-family: Verdana, Arial, Helvetica, sans-serif;
           font-size: 11px;
            color: #666666;
     }
   .dados {
            font-family: Verdana, Arial, Helvetica, sans-serif;
              font-size: 11px;
            color: #009;
  }
    .tit_textos {
         font-family: Verdana, Arial, Helvetica, sans-serif;
           font-size: 14px;
         font-weight: bold;
color: #075507;
    }
   .nomes:link {
             font-family: Verdana, Arial, Helvetica, sans-serif;
          font-size: 11px;
          color: #666666;
             text-decoration: none;
   }
      .nomes:visited {
            font-family: Verdana, Arial, Helvetica, sans-serif;
             font-size: 11px;
             color: #666666;
             background-color: #CCFFFF;
             display: block;
             text-decoration: none;
    }
     .nomes:hover {

              font-family: Verdana, Arial, Helvetica, sans-serif;

            font-size: 11px;
            display: block;
             background-image: url(imagens/pontos.png);
            text-decoration: none;
              color: #F60;
    }
     body {
            margin-left: 0px;
            margin-top: 0px;
         margin-right: 0px;
          margin-bottom: 0px;
}
     </style>
     </head>
     
<table width="1202" border="0" cellspacing="10" cellpadding="10"  >
     <tr>
     <td>
      <table width="1218" border="1" cellspacing="0" cellpadding="3" >
      <tr>
      <td colspan="19" align="center"><strong>Lista dos Activos </strong> </td>
       </tr>
      
    <tr>
    <td align="center" bgcolor="#66CC33"><strong>ID</strong></td>
     <td align="center" bgcolor="#66CC33"><strong>Data</strong></td>
   <td align="center" bgcolor="#66CC33"><strong>Delegação</strong></td>
     <td align="center" bgcolor="#66CC33" ><strong>Referência</strong></td>
     <td align="center" bgcolor="#66CC33"><strong>Espaco do Edificio</strong></td>
     <td align="center" bgcolor="#66CC33"><strong>Tipo de Equipa</strong></td>
     <td align="center" bgcolor="#66CC33"><strong>Marca</strong></td>
     <td align="center" bgcolor="#66CC33"><strong>Descrição de Equipa</strong></td>
     <td align="center" bgcolor="#66CC33"><strong>Tipo de Acção</strong></td>
     <td align="center" bgcolor="#66CC33"><strong>Periocidade</strong></td>
     <td align="center" bgcolor="#DAEAFF"><strong>Executante</strong></td>
     <td align="center" bgcolor="#DAEAFF"><strong>Responsável</strong></td>
     <td align="center" bgcolor="#DAEAFF"><strong>Data manu</strong></td>
     <td align="center" bgcolor="#DAEAFF" ><strong>Descr manu</strong></td>
     <td align="center" bgcolor="#DAEAFF"><strong>Anomlias</strong></td>
     <td align="center" bgcolor="#DAEAFF"><strong>Observação</strong></td>
     <td align="center" bgcolor="#DAEAFF"><strong>Alterar</strong></td>
      <td align="center" bgcolor="#DAEAFF"><strong>PDF</strong></td>
     
      </tr>
     <?php
      while($rows=mysql_fetch_array($result)){
     ?>
      
  <tr>
      <td><?php echo $rows['id']; ?></td>
      <td><?php echo $rows['date']; ?></td>
      <td><?php echo $rows['delegacao']; ?></td>
      <td><?php echo $rows['referencia']; ?></td>
      <td><?php echo $rows['espaedificio']; ?></td>
      <td><?php echo $rows['tipequipa']; ?></td>
      <td><?php echo $rows['marca']; ?></td>
      <td><?php echo $rows['descrequipa']; ?></td>
      <td><?php echo $rows['tipoaccao']; ?></td>
      <td><?php echo $rows['periocidade']; ?></td>
      <td><?php echo $rows['executante']; ?></td>
      <td><?php echo $rows['responsavel']; ?></td>
      <td><?php echo $rows['datamanu']; ?></td>
      <td><?php echo $rows['descmanu']; ?></td>
      <td><?php echo $rows['anomalias']; ?></td>
      <td><?php echo $rows['obs']; ?></td>
      <td align="center"><a href="update.php?id=<?php echo $rows['id']; ?>">Alterar</a></td>
      <td align="center"><a href="class.php?id=<?php echo $rows['id']; ?>">Imprimir</a></td>
      </tr>
      <?php
       }
       ?>
      </table>
      </td>
     </tr>
       </table>
       <?php
       $html = ob_get_clean();
       mysql_close();
       require_once("dompdf/dompdf_config.inc.php"); 
      $dompdf = new DOMPDF(); 
      $dompdf->load_html($html); 
      $dompdf->set_paper('letter', 'landscape');
      $dompdf->render();
      $dompdf->stream("exemplo-01.pdf");
      ?> 

Share this post


Link to post
Share on other sites
zulamon

continua igual , sem aparecer

Olha é o seguinte eu com a list_records.php funciona e mostra-me a listagem de todos os produtos que estao na base de dados bd_activos na tabela activos. O que eu queria era quando eu abrisse essa lista, ou fosse outros dados, queria que pudesse mostrar em pdf seja qual fosse a lista. eu tenho uma biblioteca foi o que me disseram, dps encontrei esse codigo que era o codigo base para fazer o ficheiro em pdf, mas ate agora o que eu conseguia fazer era so aparecer o menu agora a parte do codigo

é que é mais dificil...

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

ok... vamos fazer debug para já:

Onde tens:

       $html = ob_get_clean();
       mysql_close();

Faz:

       $html = ob_get_clean();
       die($html);
       mysql_close();

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

ja sei qual é o prob (acho :) ) :

Altera a linha:

ini_set('memory_limit','512'); # Define o limite de uso da memória em execução para 512 Mb.

Para:

ini_set('memory_limit','512M'); # Define o limite de uso da memória em execução para 512 Mb.

:P:) Deve funcionar :)

Share this post


Link to post
Share on other sites
zulamon

sim , ja mostra a listagem , mas eu queria era que listasse em modo pdf!!! sabes como fazer??

pq eu antes de meter este codigo todo novo e senao meter a parte do 

<tr>

      <td><?php echo $rows['id']; ?></td>

      <td><?php echo $rows['date']; ?></td>

ele mostra o ficheiro pdf com o menu!

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

Mostra a listagem... é bom... agora tira esta linha do teu código:

die($html)

e testa

Share this post


Link to post
Share on other sites
zulamon

n consegue abrir , dps diz que excedeu o limite de tempo !

MAIS MEMORIA ??

Share this post


Link to post
Share on other sites
mAiN_iNfEcTiOn

nao :P ... mas porra... deves ter muitos dados xD

a seguir a esta linha:

   ini_set('memory_limit','512M'); # Define o limite de uso da memória em execução para 512 Mb.

mete:

ini_set('max_execution_time',3600); # Define o tempo máximo que um script pode demorar a processar até ser terminado por timeout.

Share this post


Link to post
Share on other sites
zulamon

sao 2500 registos, vou experimentar noutra pagina com menos dados....

isto nunca mais sai daqui e estou a trabalhar localmente, no localhost

Share this post


Link to post
Share on other sites
zulamon

Olha ja obteu outro erro

Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 50 bytes) in C:\xampp\htdocs\php\codigo\Novaesperiencia\dompdf\include\frame.cls.php on line 358

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.