Foros del Web » Programando para Internet » PHP »

DOMPDF: Paginación y PHP

Estas en el tema de DOMPDF: Paginación y PHP en el foro de PHP en Foros del Web. Hola a todos!!! Soy medio nuevo en el foro, aunque ya llevo bastante tiempo programando con PHP. Hace poco tiempo heredé una aplicación a desarrollar ...
  #1 (permalink)  
Antiguo 10/02/2012, 09:08
 
Fecha de Ingreso: diciembre-2010
Ubicación: Asunción
Mensajes: 41
Antigüedad: 14 años
Puntos: 1
DOMPDF: Paginación y PHP

Hola a todos!!!

Soy medio nuevo en el foro, aunque ya llevo bastante tiempo programando con PHP. Hace poco tiempo heredé una aplicación a desarrollar (más bien sería a modificar) que fue hecha por alguien a quien no conocí. No dejo un comentario en el código que sirviera para poder analizar lo que hizo y he tenido que realizar una lectura del código para poder entender lo que se hizo, lo que ha redundado en una deficiencia de mi desempeño laboral. Pero bueno ya he ido superando eso y ya yo mismo tengo un mejor control de la app; esta aplicación tiene un área que genera informes de personas y esos informes pueden ser guardados en PDF, para ello la persona que lo hizo utilizó el DOMPDF que se ve muy bien. Llego el momento que de tantos cambios al informe en formato PHP se fue obviando el PDF y esto resulto en que con el tiempo ya no se pudiera guardar el PDF del mismo informe que se visualizaba. Me di a la tarea de corregir dicho problema y apear de que no es difícil me encontré un problema en dos sentidos:
1- La paginación del PDF es horriible
2- Producto a la páginación me corta y desvirtua las tablas

Una imagen de ejemplo:

(Por motivos de confidencialidad borre los nombres propios)

En este mismo PDF generado no solo sucede lo del crash de la tabla, sino que hace un salto de página. Otra imagen de ejemplo:


Aquí les paso la parte del código que uso en mi PHP para generar el html que hace la paginación:

$count = 0;
$va = array("D", "I");
while ($count <= 1) {
if ($va[$count] == "D") { $t = "Demandas"; }
else if ($va[$count] == "I") { $t = "Inhibiciones"; }

$q6 = "SELECT A.* FROM tbl A WHERE A.field1 = '' AND A.field2 = 'SI'
AND A.field3 = '$_GET[id]' AND A.field4 = '".$va[$count]."' ORDER BY A.fieldn ";
$r6 = mysql_query($q6) or die ("No se puede consultar tbl");
$row6 = mysql_num_rows($r6);
if ($row6) {
$i = 0;
while ($rs6 = mysql_fetch_array($r6)) {
$pagi = $pagi + 4;
if($pagi > $tot_pagi) { $html .= '<div style="page-break-after: always;" /></div>'; $pagi = 0;}


if ($tip <> $rs6['fieldx']) {

$html .= '<div style="'.$style.'">
<p><span class="big">'.$t.'</span></p>
<table width="600" border="1" cellpadding="2" cellspacing="0"';
}
$html .= '<tr>
<td valign="bottom">
<table width="100%" border="0">
<tr><td height="15" align="right"><span style="text-align: right; font-weight: bold;">Juzgado:</span></td></tr>
<tr><td height="15" align="right"><span style="text-align: right; font-weight: bold;">Demandante:</span></td></tr>
<tr><td height="15" align="right"><span style="text-align: right; font-weight: bold;">Fecha:</span></td></tr>
<tr><td height="15" align="right"><span style="font-weight: bold;">Monto:</span></td></tr>
</table>
</td>';

$query_j = "SELECT * FROM tbl1 WHERE (field1 = '' OR field1 = 'NO') AND field2 = '$rs6[fieldx]' ";
if ($recordset_j = mysql_query($query_j)) {
$rs_j = mysql_fetch_array($recordset_j); }

$html .= '<td valign="bottom">
<table width="100%" border="0">
<tr><td height="15"><small>'.$rs_j[juzgado].'</small></td></tr>
<tr><td height="15"><small>'.strtoupper($rs6[field1]).'</small></td></tr>
<tr><td height="15"><small>'.ordenar_fecha($rs6[field2]).'</small></td></tr>
<tr><td height="15"><small>'.number_format($rs6[field3], 0, ",", ".").'<small>';
if ( ($rs_j[tipo] == 1 && $rs6[field3] < 15000000 && $t == "Demandas") || ($rs6['field4'] == "D") )
{ $html .= ' Dolares'; } else { $html .= ' Guaranies'; }
$html .= '</small></small></td></tr></table></td>
<td valign="bottom">
<table width="100%" border="0">
<tr><td height="15" align="right"><span style="font-weight: bold;">Exp. No:</span></div></td></tr>
<tr><td height="15" align="right"><span style="font-weight: bold;">Secretaria:</span></div></td></tr>
<tr><td height="15" align="right"><span style="font-weight: bold;">Turno:</span></div></td></tr>
<tr><td height="15" align="right"><span style="font-weight: bold;">E. Procesal:</span></div></td></tr>
</table></td>
<td valign="bottom">
<table width="100%" border="0">
<tr><td height="15" valign="top"><small>'.$rs6[field5].'</small></td></tr>
<tr><td height="15" valign="top"><small>'.$rs6[field6].'</small></td></tr>
<tr><td height="15" valign="top"><small>'.$rs6[field7].'</small></td></tr>
<tr><td height="15" valign="top"><small>';
if ($rs6['field8'] == "A") { $html .= 'ACTIVO'; }
else if ($rs6['field8'] == "F") { $html .= 'FINIQUITADO ' . ordenar_fecha($rs6[field9]); }
$html .= '</small></td></tr></table></td></tr>';
++$i;
if (($tip <> $rs6['field1'] and $i > 1) || ($row6 == $i)) {
$html .= '</table>';
}
$tip = $rs6['field1'];
} mysql_free_result($r6); //Finaliza el While
} else {
$pagi = $pagi + 3;
if($pagi > $tot_pagi) { $html .= '<div style="page-break-after: always;" /></div>'; $pagi = 0;}


$html .= '<p><span class="big">'.$t.'</span></p>
<table width="600" border="1" cellpadding="2" cellspacing="0">
<tr><td width="600">No tiene registrado '.$t.'. </td></tr></table>';

}
++$count;
} // end while $count <= 1) para D e I
$html .= '</table></div>';
$pagi = $pagi + 2;
if($pagi > $tot_pagi) { $html .= '<div style="page-break-after: always;" /></div>'; $pagi = 0;}


Precisamente este es el código donde el PDF desvirtua la Tabla y hace el salto de página al terminar el While.

Alguna ayuda o sugerencia al respecto??

Saludos,
David
  #2 (permalink)  
Antiguo 10/02/2012, 09:10
 
Fecha de Ingreso: diciembre-2010
Ubicación: Asunción
Mensajes: 41
Antigüedad: 14 años
Puntos: 1
Respuesta: DOMPDF: Paginación y PHP

No mostro la imágenes. Estos son los Links:

1- http://www.criterion.com.py:8080/desarrollo/dompdf-inf.png

2- http://www.criterion.com.py:8080/desarrollo/dompdf-inf-2.png
  #3 (permalink)  
Antiguo 10/02/2012, 09:42
Avatar de CesarHC  
Fecha de Ingreso: junio-2011
Ubicación: localhost
Mensajes: 566
Antigüedad: 13 años, 6 meses
Puntos: 56
Respuesta: DOMPDF: Paginación y PHP

Pues yo te sigiero que revises los html DOMPDF es muy potente pero muy riguroso con el html que se le ingresa(revisa que todos los tags esten cerrados y esas cosas)
__________________
Solo la práctica no te traicionara ¡¡¡¡¡¡

Seguir el camino tu debes PHP The Right Way.

Etiquetas: dompdf, html, mysql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:21.