Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/11/2012, 05:09
Avatar de homlyne
homlyne
 
Fecha de Ingreso: noviembre-2012
Ubicación: Madrid
Mensajes: 59
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: Separar array en varias páginas para crear factura en pdf

Tendrías que utilizar bucles para aplicar pagebreak y una condición:

$total_lines = count($invoice_lines);
if($total_lines > 7){ //La condición SI el total de líneas es mayor a 7
$total_lines = floor(($total_lines / 11)) +1; // total de lineas partido por el limite en este caso 11, y para aplicar el total de factura es el +1
}
$count_page=1;
foreach ($invoice_lines as $invoice_line) {
if($count_page > 0 && $count_page < $total_lines){
echo '<pagebreak type="ODD" odd-footer-name="html_myfooter2" odd-footer-value="1">';
}

echo $invoice_line->name."--".$invoice_line->quantity."--".$invoice_line->price;

if($count_page > 0 && $count_page < $total_lines){
echo '</pagebreak>';
}
$count_page++;
}

Esto es un ejemplo si lo utilizas no te va a funcionar pero está sería la idea que me imagino que buscas, aplicandolo al primer ejemplo:

29 lineas, tendría 1 hoja de 11, otra de 11 y otra de 7 con el total.

El total de líneas al ser mayor que 7 realiza la division de (29/11=2,63.. + 1 ), saldría 3 páginas incluyendo el total y eso se aplica con condiciones a pagebreak.

Lo que faltaría es realizar el contador de líneas dentro del bucle para que los pagebreak se impriman después de 11.

Espero haberte ayudado.

Saludos.
__________________
_________________________

Homlyne - Soporte Online