¿Cómo agregar un encabezado y pie de página a cada página impresa de un documento web (sin restricción de navegador)?

Estoy construyendo una aplicación web con CakePHP (no muy pertinente, pero de todos modos) cuya misión es, entre otras cosas, producir una única página web que contenga un montón de contenido almacenado en la base de datos (una colección de artículos). Necesito poder imprimir este documento e incluir un encabezado y pie de página sencillos para cada página cuando se imprime el documento.

Además, no tengo forma de garantizar que la longitud representada de un solo elemento en la colección de artículos será menor que la de un pedazo de papel, por lo que no seré capaz de sujetar cada artículo de esta manera:

   

El lado positivo aquí es que voy a ser la única persona que imprima esto (y lo guarde como PDF, en realidad), por lo que no será necesario que ninguna solución propuesta funcione con navegadores misteriosos que todavía estén cerca ( IE6, etc.).

(Antes de marcar esta pregunta como un duplicado de esta pregunta similar , tenga en cuenta que no estoy tratando de trabajar con IE6 y que los pedazos individuales de contenido que estoy imprimiendo pueden exceder una sola página impresa en longitud. Como tal, la tabla La solución basada en ese problema no es aplicable aquí, al menos, por lo que yo sé.

Si esto me va a requerir hacer una aritmética funky para dividir un gran bloque contiguo de contenido en “páginas” de tamaño aproximado (que estarían delimitadas por la combinación de pie de página + salto de página + encabezado, obviamente), estoy de acuerdo con eso siempre que no haya una manera más sensata de hacerlo.

Gracias de antemano. Comente si cree que puedo proporcionar más información o hacer que esta situación sea más fácil de resolver.

Para manejar el lado del PDF, use wkhtmltopdf , además de ser fantástico en general para generar archivos PDF, existe un soporte sólido para un encabezado y pie de página.

Eche un vistazo a la sección “Opciones de encabezados y pie de página” aquí en el manual: http://madalgo.au.dk/~jakobt/wkhtmltoxdoc/wkhtmltopdf-0.9.9-doc.html

Por supuesto, esto supone que puede ejecutar ejecutables personalizados en su servidor.

intente usar FPDF, que tiene encabezado () y pie de página () como parte del marco .. http://www.fpdf.org/

eso manejaría su página, así como su encabezado / pie de página, así como su generación de PDF …

alternativamente a fpdf, si su contenido se divide de manera confiable en bloques de tamaño de página, use css …

 div.footer{ page-break-after:always }