Saltar al contenido

Cómo obtener el número de página en dompdf PDF cuando se usa “ver”

Solución:

Actualizar Con respecto a cambios con versión de dompdf > = 0.7.0

1. Debido a que el archivo dompdf_config.inc.php se ha eliminado de esta versión (y ya no se hace referencia a él), todas las opciones de dompdf deben configurarse en tiempo de ejecución.

4. Ahora se crea una instancia de la clase FontMetrics en lugar de estática. Para simplificar la migración de scripts incrustados de versiones anteriores de dompdf, proporcionamos acceso a la clase FontMetrics instanciada a través de la variable $ fontMetrics. Actualice sus scripts incrustados. Por ejemplo, FontMetrics :: get_font (‘helvetica’) ahora sería $ fontMetrics-> getFont (‘helvetica’).

~ Gracias a la respuesta de Dennis Ameling por la información actualizada.

Encontré mi respuesta mirando por encima del dompdf_config.inc.php expediente. Como resulta, DOMPDF_ENABLE_PHP se establece en false haciendo así que se ignore el script php en línea. Yo simplemente edité dompdf_config.custom.inc.php a lo siguiente y todo está bien y funciona con el código posterior en el view.

En dompdf / dompdf_config.custom.inc.php

<?php
    define("DOMPDF_ENABLE_PHP", true);

En tiempo de ejecución

$dompdf->set_option("isPhpEnabled", true);

Luego, en mi archivo html

<body>
    <script type="text/php">
        if ( isset($pdf) ) {
            // OLD 
            // $font = Font_Metrics::get_font("helvetica", "bold");
            // $pdf->page_text(72, 18, "{PAGE_NUM} of {PAGE_COUNT}", $font, 6, array(255,0,0));
            // v.0.7.0 and greater
            $x = 72;
            $y = 18;
            $text = "{PAGE_NUM} of {PAGE_COUNT}";
            $font = $fontMetrics->get_font("helvetica", "bold");
            $size = 6;
            $color = array(255,0,0);
            $word_space = 0.0;  //  default
            $char_space = 0.0;  //  default
            $angle = 0.0;   //  default
            $pdf->page_text($x, $y, $text, $font, $size, $color, $word_space, $char_space, $angle);
        }
    </script>
    <div

Si sigue esta ruta, no olvide reiniciar Apache

Si está utilizando DOMPDF> = 0.7.0, el archivo dompdf_config.inc.php se ha eliminado y agregar un número de página ahora requiere un enfoque ligeramente diferente:

Debido a que el archivo dompdf_config.inc.php se ha eliminado de esta versión (y ya no se hace referencia a él), todas las opciones de dompdf deben configurarse en tiempo de ejecución.

Para permitir que DOMPDF ejecute el código PHP, use:

$dompdf->set_option("isPhpEnabled", true);

Además, FontMetrics ahora debería llamarse usando $fontMetrics en lugar de Font_Metrics, por lo que el código mencionado por @ user1231342435346354 cambia ligeramente:

<script type="text/php">
if ( isset($pdf) ) { 
    $pdf->page_script('
        if ($PAGE_COUNT > 1) {
            $font = $fontMetrics->get_font("Arial, Helvetica, sans-serif", "normal");
            $size = 12;
            $pageText = "Page " . $PAGE_NUM . " of " . $PAGE_COUNT;
            $y = 15;
            $x = 520;
            $pdf->text($x, $y, $pageText, $font, $size);
        } 
    ');
}
</script>

Tengo un código simple para mostrar el número de página en el pie de página de cada página de dom pdf

#footer { position: fixed; right: 0px; bottom: 10px; text-align: center;border-top: 1px solid black;}
        #footer .page:after { content: counter(page, decimal); }
 @page { margin: 20px 30px 40px 50px; }

el código anterior es código css

<div id="footer">
    <p class="page">Page </p>
  </div> 

Puede cambiar la posición del texto según sus necesidades

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



Utiliza Nuestro Buscador

Deja una respuesta

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