CSS: commence à numéroter des pages avec 2 au lieu de 1
Question
En CSS, avec:
@page { @top-right { content: "Page " counter(page) " of " counter(pages); } }
Je peux avoir les numéros de page affichés en haut de chaque page lors de l'impression de la page. Cela fonctionne très bien. Mais maintenant, comment puis-je faire en sorte que le numéro de page commence par 2 au lieu de 1? Puis-je le faire en modifiant la règle CSS ci-dessus?
La solution
Si vous utilisez Flying Saucer (ce qui était mon cas), utilisez le code CSS suivant:
table {-fs-table-paginate: paginate; }
Cela fonctionne comme un charme. Et la soucoupe volante est géniale :). Vraiment fortement recommandé.
Autres conseils
Essayez:
@page {
counter-increment: page;
counter-reset: page 1;
@top-right {
content: "Page " counter(page) " of " counter(pages);
}
}
utiliser page 1
réinitialisera le point de départ du compteur. Vous pouvez utiliser n'importe quel entier pour commencer à compter. La valeur par défaut est 0
.
Après avoir un peu joué avec Flying Saucer, je suppose qu'il est impossible de le faire avec CSS (ou que c'est très compliqué), car "page" / "pages". semblent être des variables CSS internes. C’est peut-être mieux avec CSS 3, il semble y avoir une fonction calc (), donc counter (calc (page + 1)) pourrait peut-être fonctionner ...
Mais il existe un autre moyen de démarrer le PDF à partir de la page 2. Vous pouvez ajouter une première page vierge au PDF en ajoutant cette ligne au fichier xhtml:
<h1 style="page-break-before:always"></h1>
Vous pouvez ensuite n'imprimer que les pages 2 à ... du PDF lorsque vous utilisez une imprimante ou supprimer la première page du PDF avec un éditeur de PDF.
Avez-vous vu la documentation CSS sur les compteurs? voir ici Il me semble que vous pouvez appeler le compteur de réinitialisation . Par défaut, les compteurs sont réglés sur 0. Si dans votre balise Body, vous avez effectué un "content-reset: page 1; " alors il devrait forcer la première page à commencer à 2 au lieu de 1.
Je ne sais pas si cela fonctionne, mais pourquoi ne pas essayer counter (page + 1)
?