Header in PDF page using DOMPDF in PHP Header in PDF page using DOMPDF in PHP php php

Header in PDF page using DOMPDF in PHP


In the 0.6.0 code you will be able to use HTML+CSS to generate headers and footers. There are a few limitations when compared to using inline PHP (e.g. no PAGE_COUNT placeholder yet), so whether or not this is viable depends on your needs.

The following code will produce a two-page document with a header and footer:

<html><head>  <style>    @page { margin: 180px 50px; }    #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><body>  <div id="header">    <h1>Widgets Express</h1>  </div>  <div id="footer">    <p class="page">Page </p>  </div>  <div id="content">    <p>the first page</p>    <p style="page-break-before: always;">the second page</p>  </div></body></html>

You could also use a combination of the two styles if you needed access to some of the missing functionality. PDF objects and text added using the page_text method render on top of the HTML content.


There is a FAQ entry on the DOMPDF wiki: Is there a way to add headers and footers or page numbers?.

So you can either add the following "inline PHP"-snippet to your HTML-input (add a similar page_text-call for your footer):

<script type="text/php">    if ( isset($pdf) ) {        $font = Font_Metrics::get_font("helvetica", "bold");        $pdf->page_text(72, 18, "Header: {PAGE_NUM} of {PAGE_COUNT}",                        $font, 6, array(0,0,0));    }</script>    

If you rather want to implement this on your caller-side (meaning in the PHP code directly) you have to call the DOMPDFS's get_canvas()-method which returns the underlying PDF-Renderer which allows you to call the page_text method like in the example above. Let me show you what I mean:

// your dompdf setup        $dompdf = new DOMPDF();$dompdf->load_html($html);$dompdf->render();// add the header$canvas = $dompdf->get_canvas();$font = Font_Metrics::get_font("helvetica", "bold");// the same call as in my previous example$canvas->page_text(72, 18, "Header: {PAGE_NUM} of {PAGE_COUNT}",                   $font, 6, array(0,0,0));

Eventually you have to call page_text after load_html (just try it out).


You need This code, I hope help you

Regards...

# Instanciamos un objeto de la clase DOMPDF.$dompdf = new DOMPDF();# Definimos el tamaño y orientación del papel que queremos.# O por defecto cogerá el que está en el fichero de configuración.$dompdf->set_paper("Letter", "portrait");# Cargamos el contenido HTML.$dompdf->load_html(utf8_decode($html));# Renderizamos el documento PDF.$dompdf->render();#Esto es lo que imprime en el PDF el numero de paginas$canvas = $dompdf->get_canvas();$footer = $canvas->open_object();$w = $canvas->get_width();$h = $canvas->get_height();$canvas->page_text($w-60,$h-28,"Página {PAGE_NUM} de {PAGE_COUNT}", Font_Metrics::get_font('helvetica'),6);$canvas->page_text($w-590,$h-28,"El pie de página del lado izquiero, Guadalajara, Jalisco C.P. XXXXX Tel. XX (XX) XXXX XXXX", Font_Metrics::get_font('helvetica'),6);$canvas->close_object();$canvas->add_object($footer,"all");# Enviamos el fichero PDF al navegador.//$dompdf->stream('FicheroEjemplo.pdf');# Para grabar en fichero en ruta especifica$output = $dompdf->output();file_put_contents('ejemplo.pdf',$output); #Liberamos unset($dompdf);