Ir para conteúdo

POWERED BY:

Arquivado

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

eduardococite

[Resolvido] Impressão com Quebra de Páginas

Recommended Posts

Boa Tarde a Todos do Fórum,

 

Estou com um problema, tenho uma consulta em BD com o resultado de 8 registros e gostaria de colocar apenas 4 por página e imprimir em cada página apenas 4 registros.

Total 8 registros:

4 em uma página

4 em uma página

2 em uma página

 

segue o código abaixo:

 

$db = new db();

$query = "select *";

$query .= ' from anuncio_jornal where imprimir=1 ';

$db->query($query,__LINE__,__FILE__);

$db->next_record();

 

if ($db->f(anuncio_tipo)=='A'){

$res = 'ALUGUEL';

}else{

if ($db->f(anuncio_tipo)=='V'){

$res = 'VENDA';

}else{

$res = 'BERVEL';

}

}

echo '<br>';

echo '<br>';

echo '<table width="100%"><tr><td align="center">EMPREENDIMENTOS - '.$res.'</td></tr></table>';

echo '<br>';

echo '<br>';

echo '<br>';

$resultado = '<table border=0 width=100% cellpadding=5>';

 

for($i=0;$i<=$db->num_rows();$i++)

{

$resultado .= '<tr>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '</tr>';

 

$resultado .= '<tr>';

$resultado .= '<td width=20%>'.$db->inverte_data_hora_origem_banco($db->f("datapub")).'</td>';

$resultado .= '<td> </td>';

$resultado .= '<td align=right>'.$db->f("secao").'</td>';

$resultado .= '<td> </td>';

$resultado .= '</tr>';

 

$resultado .= '<tr>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '</tr>';

 

$resultado .= '<tr>';

$resultado .= '<td> </td>';

$resultado .= '<td>'.$db->f("anuncio_id").' COD. '.$db->f("cod_winloc").'</td>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '</tr>';

 

$resultado .= '<tr>';

$resultado .= '<td> </td>';

$resultado .= '<td>'.$db->f("conteudo").'</td>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '</tr>';

 

$resultado .= '<tr>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '<td> </td>';

$resultado .= '</tr>';

 

$db->next_record();

 

}

 

$resultado .= '</table>';

 

echo $resultado;

 

echo "<div style='page-break-after:always'> </div>"; //Sei que esse comando faz a quebra de página mas não está funcionando

?>

 

Agradeço a atenção de todos...

 

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite!

 

O codigo da quebra de pagina parace estar ok, mas esse tipo de CSS somente mostra a quebra de pagina quando você vai em 'Visualizar Impressão' no navegador ou quando imprime, por exemplo:

echo "<div style='page-break-after:always'>pagina 1  </div>"; 
echo "<div style='page-break-after:always'>pagina 2  </div>";

o resultado desde codigo no navegador seria assim:

pagina 1

pagina 2

 

mas quando for visualizado na impressão cada um deles aparece em paginas separadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

continuando...

e na logica do loop você teria que thar uma alterada, para alguma coisa parecida com isso:

for($i=1;$i<=$db->num_rows();$i++) 
{ 

if($resultado == '')
{

  $resultado = '<table border=0 width=100% cellpadding=5>';

}

$resultado .= '<tr>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>';
$resultado .= '</tr>';

$resultado .= '<tr>';
$resultado .= '<td width=20%>'.$db->inverte_data_hora_origem_banco($db->f("datapub")).'</td>';
$resultado .= '<td> </td>';
$resultado .= '<td align=right>'.$db->f("secao").'</td>';
$resultado .= '<td> </td>'; 
$resultado .= '</tr>';

$resultado .= '<tr>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>';
$resultado .= '</tr>';

$resultado .= '<tr>';
$resultado .= '<td> </td>';
$resultado .= '<td>'.$db->f("anuncio_id").' COD. '.$db->f("cod_winloc").'</td>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>'; 
$resultado .= '</tr>';

$resultado .= '<tr>';
$resultado .= '<td> </td>';
$resultado .= '<td>'.$db->f("conteudo").'</td>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>';
$resultado .= '</tr>';

$resultado .= '<tr>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>';
$resultado .= '<td> </td>';
$resultado .= '</tr>';



if(($i % 4) == 0)
{

  $resultado .= '</table>';
  
  echo $resultado;
  
  //usei aqui o hr somente para você ter uma ideia da impressão
  //no proprio html
  echo "<hr style='page-break-after:always'>";
  
  $resultado = '';

}

$db->next_record();

} 



echo $resultado;

Não testei o codigo do loop.

Espero ter ajudado.

QQ coisa estamos ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Leanribas, funcionou perfeitamente a impressão das páginas e fiz uma pequena mudança adicionando um cabeçalho em cada página impressa basta adicionar o seguinte código abaixo...

 

if(($i % 4) == 0)

{

 

$resultado .= '</table>';

?>

//bloco de cabeçalho

<br>

<br>

<table width="100%"><tr><td align="center">EMPREENDIMENTOS - <? echo $res; ?></td></tr></table>

<br>

<br>

<br>

//fim bloco cabeçalho

<?

echo $resultado;

 

echo "<div style='page-break-after:always'> </div>";

 

$resultado = '';

 

}

 

$db->next_record();

}

 

fica ai esse post resolvido e para quem tiver essa mesma dúvida...

 

abs a todos do fórum pela ajuda principalmente ao leanribas que me ajudou neste tópico

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.