traduccion saucer fortnite flying example crear con java css pdf flying-saucer xhtmlrenderer

java - fortnite - Con Flying Saucer, ¿cómo genero un pdf con un número de página y un total de páginas en cada página al pie de página?



flying saucer traduccion (4)

La solución de @John Mark funcionó para mí. En mi aplicación necesitaba incrustar la información de estilo en el HTML, así que lo envolví en etiquetas <style> y lo puse dentro de <head> antes de <title> . Tal vez esa información sea útil para otra persona.

Me tomó un poco más de investigación de lo que me hubiera gustado resolver esto por mi cuenta, por lo que voy a publicar una respuesta completa aquí. Parece que la información para hacer esto se extiende a muchos sitios web diferentes y me gustaría ubicarla en un solo lugar. Esta respuesta puede ser la misma cosa, pero mis ojos se ponen vidriosos porque está en una cadena Java y no en una plantilla html. Aquí está la pregunta:

Estoy mostrando un PDF y quiero un pie de página en la parte inferior de la página que dice "Página n de m", donde "n" es el número de página en el que se encuentra y "m" es el total de páginas del documento. ¿Cómo puedo hacer eso?


También puedes probar un enfoque un poco más conciso:

@page { @bottom-right { content: "Page " counter(page) " of " counter(pages); } }

Debe poner esto en su css / style, y no necesita agregar un elemento HTML de pie de página adicional.


¡Importante error y solución!

Para empezar, usar la solución de John Mark a continuación es la forma CORRECTA de hacerlo funcionar:

@page { @bottom-right { content: "Page " counter(page) " of " counter(pages); } }

Sin embargo, muchas personas pueden haber encontrado el siguiente problema en el que su PDF HA PARADO DE GENERARSE.

Esto se soluciona actualizando su VERSIÓN de SALPICADERO.

Estaba ejecutando 9.1.4 cuando mi PDF dejó de generar debido al código css de @page & @ bottom-right .

¡Esto fue un problema técnico en Flying Saucer que se corrigió en la versión 9.1.5 !

Asegúrate de actualizar a 9.1.5 y usa la respuesta de John Mark.


En tu html, debes poner esto en algún lugar de la etiqueta del body :

<div id="footer"> page <span id="pagenumber"></span> of <span id="pagecount"></span> </div>

Y este debería ser tu css / estilo:

#footer { position: running(footer); text-align: right; } @page { @bottom-right { content: element(footer); } } #pagenumber:before { content: counter(page); } #pagecount:before { content: counter(pages); }

Puedes aprender más sobre esa opción @bottom-right here .