entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Repetir header con html y dompdf

Hola a todos,

Estoy trabajando en la creación de un pdf, esto a partir de un html, en fin todo va bien, pero ahora se me ocurrió ponerle el header a todas las paginas que encuentre y vi que se podía hacer, seguí este ejemplo
pagina que vi en internet
y mi codigo

es el siguiente:

<html>
    <head>
    <style type="text/css">

    .container_12 {
        margin-left: 25px;
        margin-right: 25px;

    }

     #header { position: fixed; left: 0px; top: -180px; right: 0px; height: 150px; background-color: orange; text-align: center; }
    #footer { position: fixed; left: 0px; bottom: -180px; right: 0px; height: 150px; background-color: lightblue; }
    #footer .page:after { content: counter(page, upper-roman); }

    </style>

    </head>

    <body>

        <div id="header" >
                <table width="100%">
                    <tr>
                        <td width="55%"><img src="img/iconleft.png" height="35px" width="160px"></td>
                        <td>Ericsson Internal <br>
                            METHOD OF PROCEDURE (29)
                        </td>
                    </tr>
                </table>
                <table width="100%" border="1">
                    <tr>
                        <td>Prepared (Subject resp) <br>
                        TAM/
                        </td>
                        <td colspan="2">No.</td>
                    </tr>
                    <tr>
                        <td>Approved (Document resp)  |Checked </td>
                        <td>Checked Date  | Rev</td>
                        <td>Reference</td>
                    </tr>
                </table>  
        </div>
        <div id="content">
    <p>the first page</p>
   <p style="page-break-before: always;">the second page</p>
  </div>

    </body>
</html>
<?php
require_once("dompdf/dompdf_config.inc.php");
$dompdf = new DOMPDF();
$dompdf->load_html(ob_get_clean());
$dompdf->render();
$pdf = $dompdf->output();

$file = "mopsdown/".$id1.".pdf";

file_put_contents($file,$pdf);
$dompdf->stream($pdf);
?>

sin embargo, no consigo que el header se repita, alguien que me pueda ayudar?

0voto

MitsuGami comentado

dompdf trabaja con PHP, por lo que simplemente puedes trabajar con layouts. Esto es tener un master page y sobreescribir el cuerpo o las partes deseadas. O simplemente agrega un require_once("ruta/al/header.php") en todas las páginas.

0voto

rach comentado

hola @M1tsu primero que nada muchas gracias por tomarte el tiempo de responder a mi pregunta, sin embargo, me gustaría saber si tienes algún ejemplo que me pueda ayudar, ya que me intriga mucho saber porq no me funciona mi ejemplo ya que vi varios por la red que lo estaban haciendo igual y funcionaba :S

SAludos

0voto

MitsuGami comentado

Si en otros ejemplos funciona, entonces debe ser problema de CSS. El header tiene un top de -180px, lo que hará que el header quede hacia arriba 180px y por obvias razones no se verá. Coloca top: 0 para que veas el resultado.

0voto

rach comentado

hola muchas gracias por respoonder, ya lo intenté y sigue sin funcionar

en este ejemplo funciona bien

http://eclecticgeek.com/dompdf/debug.php?identifier=3a280595e380e9264409074147818e04

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola @rach,

según este ejemplo http://pxd.me/dompdf/www/examples.php#print_header_footer.html,pdf bastaría con poner el header en un DIV el header con position:fixed; y top:0; para que se vea como un encabezado y se repita.

Si el header es alto, seguramente el contenido tendrá que tener un margin-top:XXpx; para que no se superpongan.

En tu código estás usando valores negativos, pero esto debería significar que el header queda afuera de la página...

Saludos

1voto

rach comentado

hola @Leonardo-Tadei ya lo cambie

header { position: fixed; left: 0px; top: 0px; right: 0px; height: 150px; text-align: center; }

pero sigue sin funcionar :(
igual seguí este ejemplo y nada

ejemplo2

0voto

Leonardo-Tadei comentado

En CSS los valores en 0 deben ser sin unidades.

Por si es algo relacionado con la sintaxis del CSS, probá top: 0; y así con todos los que sean cero...

PD: en el enlace la cabecera amarilla aparede reptida en cada página... no será la caché de tu navegador que te está mostrando la versión anterior?

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta