Saltar al contenido

Evitar el pie de página superpuesto al cuerpo en mPDF

Queremos proponerte la mejor solución que encontramos on line. Nosotros queremos que te sirva de ayuda y si deseas compartir algún detalle que nos pueda ayudar a mejorar hazlo con libertad.

Solución:

El problema radica en la documentación de mpdf. Creo que margin_footer y margin_header es el margen entre el cuerpo del documento y estos. En cambio, margin_footer y margin_header son los márgenes del documento, como uno pensaría que serían margin_top y margin_bottom.

Por lo tanto, cambiar el margen inferior y superior decidirá dónde comienza el cuerpo del documento. Y cambiar el margen del encabezado/pie de página decidirá los márgenes de impresión.

¡Espero eso ayude!

respuesta actualizada

Supongo que la documentación de mPDF está un poco apagada para la llamada del constructor. El argumento margin_top/bottom es en realidad el margen del contenido y no se aplica a los argumentos margin_header/footer. (si no recuerdo mal). El margen superior/inferior es el margen absoluto desde la parte superior del documento y debe incluir la altura del encabezado/pie de página.

Esta es la forma correcta de manejar los márgenes:

/**
 * Create a new PDF document
 *
 * @param string $mode
 * @param string $format
 * @param int $font_size
 * @param string $font
 * @param int $margin_left
 * @param int $margin_right
 * @param int $margin_top (Margin between content and header, not to be mixed with margin_header - which is document margin)
 * @param int $margin_bottom (Margin between content and footer, not to be mixed with margin_footer - which is document margin)
 * @param int $margin_header
 * @param int $margin_footer
 * @param string $orientation (P, L)
 */
new mPDF($mode, $format, $font_size, $font, $margin_left, $margin_right, $margin_top, $margin_bottom, $margin_header, $margin_footer, $orientation);

$mpdf->setAutoBottomMargin = 'stretch';

Trabajó para mi. Todo lo que tenía que hacer era asegurarme de incluir la opción antes del pie de página.

No funcionó para mí, pero me las arreglé para encontrar la manera de resolver esto. Todo lo que tenía que hacer era establecer el pie de página antes de cualquier contenido. Esto se debe a que el cálculo de la altura del pie de página se realiza antes de cualquier procesamiento de contenido. Pero si agrega un pie de página más tarde con SetHTMLFooter, mPDF no vuelve a calcular la altura del pie de página, por lo que será 0. De esta forma, no habrá salto de página y el contenido se superpondrá al cuerpo. Así que la solución final fue:

  1. Cree el objeto mPDF con 'setAutoBottomMargin' => 'stretch'
  2. Añadir el encabezado
  3. Añadir el pie de página
  4. Agrega el contenido

Espero eso ayude.

Te mostramos reseñas y puntuaciones

Nos puedes apoyar nuestra faena añadiendo un comentario o puntuándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *