Php. Dompdf, imprimir correctamente bloques con contenido oculto.

Submitted by tech4life on

En otro post os explicamos como imprimir contenido Html en Pdf desde Php, y en otro como imprimir mapas estáticos de Google. Así, ¿ que os vamos a explicar hoy? Bien pues nosotros nos encontramos con un problema en algunas versiones de Dompdf, en el que teníamos un bloque (div) en el que teníamos todo un texto. Pero nuestro div estaba configurado para que si el contenido excedía el bloque, el contenido se ocultara y no creciera el div (overflow:hidden). 

Lo que nos dimos cuenta, es que al realizar esta acción, al imprimirlo, Dompdf no lo generaba correctamente. Permitía crecer el div y lo imprimía y hacía cosas un tanto extrañas.

Y, ¿ cómo lo solucionasteis? Pues al final, después de realizar diferentes pruebas dimos con la solución, y la verdad es que la solución al final es muy sencilla. 

.divbodyright {
      position: absolute;
      top:168px;
      left:55%;
      bottom: 0px; 
      right:0px;
      height: 100px;
      width:100%;
      background-color : #fffefd;
      display:inline-block;
      overflow: hidden;
}

Pues esta es la solución. Como os comentamos para imprimir html en Pdf desde Php tienes que crear un fichero o una variable en HTML, y en este HTML le puedes añadir CSS. Para que funcione correctamente el overflow:hidden y así no crezca nuestro div si el contenido es más grande, la position debe ser absolute y debe tener un height específico. 

Con este css conseguimos que al imprimir solo aparezca el contenido que entra dentro de este bloque.

Esperemos que os haya sido de utilidad.

Lenguaje
Nivel