2012-04-23 40 views
18

¿Alguien sabe cómo obtener el número de páginas generadas si un documento PDF utiliza la biblioteca mPDF?¿Cómo obtener un recuento de páginas en un documento mPDF?

+0

http://stackoverflow.com/questions/1098156/number-of-pages-in-a-pdf-file - mayo de ayuda a – Rikesh

+0

agrega esto a una clase principal MPDF: función getPageCount() { \t recuento de devolución ($ this-> pages); } luego agregue un analizador html tal cadena: $ html = str_replace ('{PAGECNT}', $ this-> getPageCount(), $ html); después de estas acciones, puede insertar {PAGECNT} directamente en su HTML analizado para obtener el resultado. Esto es útil si necesita indicar una página, como: "página 2 de 5". –

Respuesta

3

agregar esto a una clase principal MPDF:

function getPageCount() { 
    return count($this->pages); 
} 

continuación, agregar un html-analizador tales cadena:

$html = str_replace('{PAGECNT}', $this->getPageCount(), $html); 

después de estas acciones se pueden insertar {PAGECNT} directamente en el código HTML analizada a obtener el resultado Esto es útil es lo que necesita para indicar una página:

+0

Esto funciona para mí, pero solo se muestra en la última página, ¿es posible mostrarlo en el pie de página de cada página? –

+0

tell pleaze donde necesita insertar parse html? en que función? –

22

que estaba buscando la misma funcionabilidad durante el uso de EYiiPdf (un contenedor para MPDF en Yii) y los siguientes trabajó como un encanto:

$mPDF->setFooter('{PAGENO}/{nb}'); 

Revisé fuente de MPDF y encontró esto en mpdf.php: 1656 (versión 5.4):

function AliasNbPages($alias='{nb}') { 
    //Define an alias for total number of pages 
    $this->aliasNbPg=$alias; 
} 

espero que ayude!

+1

¡Respuesta realmente aceptada, no me sirve! Y tu solución funcionó :) – sravis

+0

Estoy creando archivos PDF usando mpdf (dentro de Yii), los archivos pdfs se crean a partir de htmls, y utilicé setfooter para las cosas del pie de página, ¡pero solo aparece en la última página! cómo conseguir eso en cada página? $ mPDF1-> setFooter ('{FECHA j-m-Y} | {PAGENO}/{nb}', 'O | E'); – nu6A

12

Puede utilizar {nbpg}, como

<div align="center"><b>{PAGENO}/{nbpg}</b></div> 
+2

Esta es una respuesta muy útil. Si está utilizando 'resetpagenum',' {nbpg} 'muestra el número de página actual contando desde su último restablecimiento. Si desea mostrar el recuento total de páginas, puede usar '{nb}'. –

2

Si usted está tratando de devolver el número de páginas para que pueda guardar esta a una base de datos o alguna otra operación fuera de MPDF es fácil tirar de esta manera.

Después de que escriba su contenido:
$ mpdf-> WriteHTML ($ html);

$ page_count = $ mpdf -> page;

$ mpdf-> Salida();

+0

He estado buscando esto para AGES, mirando los documentos durante horas y finalmente he encontrado la respuesta. Muchas gracias! –

0

Reloj para la línea:

preg_replace('/\{DATE\s+(.*?)\}/e',"date('\\1')",$hd);

en la función mpdf.php Pie de página() Puede provocar que "{PAGENO}/{nb}" no se muestre. Simplemente coméntelo o use strpos('{DATE' > -1) para verificar si está disponible. También es posible que tenga que añadir:

$mpdf->ignore_invalid_utf8 = true;

y también si usted no quiere línea de pie de página:

$mpdf->defaultfooterline = false; 

Después de estos cambios la paginación trabajó para mí en el pasado.

Cuestiones relacionadas