Foros del Web » Programando para Internet » PHP »

dompdf me lanza un error al imprimir varias tablas

Estas en el tema de dompdf me lanza un error al imprimir varias tablas en el foro de PHP en Foros del Web. Hola amigos. Utilizo dompdf para imprimir el resultado de una serie de estadísticas. Estas estadísticas se pueden elegir por medio de un checkbox. Quiero decir ...
  #1 (permalink)  
Antiguo 06/06/2011, 01:05
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 17 años
Puntos: 2
dompdf me lanza un error al imprimir varias tablas

Hola amigos.
Utilizo dompdf para imprimir el resultado de una serie de estadísticas.
Estas estadísticas se pueden elegir por medio de un checkbox. Quiero decir que puedo imprimir múltiples estadísticas a la vez.
Cada estadística se carga en un div distinto que, a su vez, está dentro de otro div.
Código HTML:
Ver original
  1. <div id='zonas' style='float:left; align='center''>
  2.         <table class='form' id='itsthetable'>
  3.             <tr><th><img src='./images/blanco.png' onLoad='javascript:ocultaTablaEst()'/></th></tr>
  4.             <tr>
  5.                 <th><div id='zonaVolantesporFedeInt' name='zonaVolantesporFedeInt' class='divEstCoord' align='center'></div></th>
  6.             </tr>
  7.             <tr>
  8.                 <th><div id='zonaVolantesporTipoSol' name='zonaVolantesporTipoSol' class='divEstCoord' align='center'></div></th>
  9.             </tr>
  10.             <tr>
  11.                 <th><div id='zonaUnidadesporCaracterInst' name='zonaUnidadesporCaracterInst' class='divEstCoord' align='center'></div></th>
  12.             </tr>
  13.             <tr>
  14.                 <th><div id='zonaVolantesporRealizados' name='zonaVolantesporRealizados' class='divEstCoord' align='center'></div></th>
  15.             </tr>
  16.             <tr>
  17.                 <th><div id='zonaVolantesporSexoEdad' name='zonaVolantesporSexoEdad' class='divEstCoord' align='center'></div></th>
  18.             </tr>
  19.             <tr>
  20.                 <th><div id='zonaVolantesporProvincias' name='zonaVolantesporProvincias' class='divEstCoord' align='center'></div></th>
  21.             </tr>
  22.             <tr>
  23.                 <th><div id='zonaDuracionMedia' name='zonaDuracionMedia' class='divEstCoord' align='center'></div></th>
  24.             </tr>
  25.             <tr>
  26.                 <th><div id='zonaVolantesporFranja' name='zonaVolantesporFranja' class='divEstCoord' align='center'></div></th>
  27.             </tr>
  28.             <tr>
  29.                 <th><div id='zonaGrafica' name'zonaGrafica' class='divEstCoord' align='center'></div></th>
  30.             </tr>
  31.             <tr>
  32.                 <th>
  33.                 <div align='center' id='botpdf' name='botpdf'><input type='button' id='gpdf' name='gpdf' value='Generar Pdf' onclick='javascript:recogeHtml();'/></div>
  34.                 </th>
  35.             </tr>
  36.         </table>
  37.     </div>

Luego a dompdf le mando lo siguiente
Código PHP:
function imprimePdf($htmlest)
{    

    
$html "<html>
        <head>
            <link rel='stylesheet' href='style.css' />
        </head>
        <body>
        <div id='cabecera_membrete' style='width:100%; float:left;'/><div align='center'><img src='images/cabecera_membrete.png'/></div></div>
        <div id='centro_pdf' style='height:80%; width:100%;'>
            <div id='lateral_membrete' style='width:5%; float:left; border:1px solid red'><img src='images/lateral_membrete.png' style='margin-top:3em'/></div>
            <div id='contenido_pdf' style='float:right; border: 1px solid orange; width:90%;'>$htmlest</div>
            
            <div class='cleared'></div>
        </div>
        <div id='pie_membrete' style='width:100%; float:left; height:5%;'><div align='center'><img src='images/pie_membrete.png'/></div></div>
        </body>
    </html>"
;
    require_once(
"includes/dompdf/dompdf_config.inc.php");
    
$dompdf = new DOMPDF();
    
$dompdf->set_paper("a4""portrait");
    
$dompdf->load_html($html);//cargamos el html
    
ini_set("memory_limit","32M"); 
    
$dompdf->render();//renderizamos
    
$pdf $dompdf->output();//asignamos la salida a una variable
    
file_put_contents("archivo.pdf"$pdf);//colocamos la salida en un archivo
    
$dompdf->stream("archivo.pdf");
    
$dompdf->stream("liberar.vb");
    echo 
"<a href=\"archivo.pdf\" target=\"_blank\">archivo.pdf</a>";//imprimo la liga para descargar el pdf
    

Si elijo que me imprima una sola estadística me la imprime sin problemas. En cambio si le pido que me imprima 2 me lanza los siguientes errores

Notice: Undefined offset: 2 in /var/www/default/CnseIls2/includes/dompdf/include/cellmap.cls.php on line 559
Fatal error: Call to a member function get_id() on a non-object in /var/www/default/CnseIls2/includes/dompdf/include/cellmap.cls.php on line 560

Alguien sabe a qué puede ser debido ésto?
Las estadísticas a parte de los divs están formadas por tablas.

Gracias y saludos.
  #2 (permalink)  
Antiguo 06/06/2011, 03:06
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 4 meses
Puntos: 202
Respuesta: dompdf me lanza un error al imprimir varias tablas

¿liberar.vb?

Código PHP:
$dompdf->stream("liberar.vb"); 
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #3 (permalink)  
Antiguo 06/06/2011, 03:13
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 17 años
Puntos: 2
Respuesta: dompdf me lanza un error al imprimir varias tablas

Problemas del copy/paste.
De todas formas eso no es, se lo he quitado y sigue dándome el mismo error...
  #4 (permalink)  
Antiguo 06/06/2011, 03:22
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 4 meses
Puntos: 202
Respuesta: dompdf me lanza un error al imprimir varias tablas

Undefined offset: 2
Eso es que hay un array fuera de rango. Comprenderás que no sé que hay en la línea 559 del /include/cellmap.cls.php pero por el nombre del archivo parece que es un problema con la tabla.

antes de unirlo podrías mostrarlos separados para ver si el problema está en la tabla, al concatenar o en algunas de las opciones que has puesto.

Edit: por cierto no sé que usas pero por si acaso recuerda la documentacion del dompdf

output_file (optional) the rawurlencoded() name of the output file. Defaults to 'dompdf_out.pdf'. Deprecated in 0.6, forced to "dompdf_out.pdf"
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #5 (permalink)  
Antiguo 06/06/2011, 06:23
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 17 años
Puntos: 2
Respuesta: dompdf me lanza un error al imprimir varias tablas

Gracias IEKK por tu respuesta.

Verás, en las tablas no hay ningún problema.
Antes de decirle que las mande a pdf las imprimo en pantalla y eso lo hace correctamente, ya sea una tabla, 2, 3... El problema es ese, el dompdf.
Hay alguna etiqueta que el dompdf no interprete bien? alomejor la cosa puede ir por ahí.
Como ya dije antes, si sólo mando a pdf una tabla, la imprime perfectamente.
Ten en cuenta también que cada tabla va en un div distinto.
La documentación del dompdf ya la leí en su momento y no encuentro nada relacionado a la que me está ocurriendo.

Saludos!!
  #6 (permalink)  
Antiguo 07/06/2011, 02:43
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 17 años
Puntos: 2
Respuesta: dompdf me lanza un error al imprimir varias tablas

Hola de nuevo.
Finalmente han cambiado un poco las cosas. He puesto el botón de generar pdf en el título de cada estadística y voy a generarlas 1 a 1. Así ni me complico ni me retraso más.
Pero aquí no se acaban los errores.
En una estadística que es muy grande me dice que no dispone de suficiente memoria, así que le he cambiado la memoria límite. Al hacer ésto el nuevo error que me da dice algo así como que el marco no se encuentra en cellmap. En otras solamente me dice lo del marco.
Sabeis a qué puede deberse ésto? seguiré buscando información a ver si doy con la tecla.

Gracias y un saludo.

Etiquetas: dompdf, tablas
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.
Tema Cerrado




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