web-dev-qa-db-fra.com

Puis-je forcer un saut de page dans l'impression HTML?

Je crée un rapport HTML qui va être imprimable et qui contient des "sections" qui devraient commencer dans une nouvelle page.

Existe-t-il un moyen d'ajouter quelque chose dans le code HTML/CSS qui indique au navigateur qu'il doit forcer un saut de page (créer une nouvelle page) à ce stade?

Je n'ai pas besoin que cela fonctionne dans tous les navigateurs, je pense que je peux dire aux gens d'utiliser un ensemble spécifique de navigateurs pour pouvoir les imprimer.

144
Daniel Magliola

Ajoutez une classe CSS appelée "pagebreak" (ou "pb"), comme ceci:

@media print {
    .pagebreak { page-break-before: always; } /* page-break-after works, as well */
}

Ajoutez ensuite une balise DIV vide ( ou tout élément de bloc générant une zone ) à l'endroit où vous souhaitez insérer le saut de page.

<div class="pagebreak"> </div>

Il n'apparaîtra pas sur la page, mais le cassera lors de l'impression.

P.S. Ceci s’applique peut-être uniquement lorsqu’on utilise -after (et aussi ce que vous pourriez faire d’autres <div>s sur la page), mais j’ai trouvé que je devais augmenter la classe CSS comme suit:

@media print {
    .pagebreak {
        clear: both;
        page-break-after: always;
    }
}
276
Chris Doggett

Essayez ceci lien

<style>
@media print
{
h1 {page-break-before:always}
}
</style>
40
jfarrell

Vous pouvez utiliser la propriété CSS page-break-before (ou page-break-after). Il suffit de définir page-break-before: always sur les éléments de niveau bloc (par exemple, en-tête, les éléments div, p ou table qui devraient commencer sur une nouvelle ligne.

Par exemple, pour provoquer un saut de ligne avant tout en-tête de 2e niveau et avant tout élément de la classe newpage (par exemple, <div class=newpage>...), vous utiliseriez

h2, .newpage { page-break-before: always }
7
Jukka K. Korpela

Je voulais juste mettre à jour. page-break-after est maintenant une propriété héritée.

Officiel page états

Cette propriété a été remplacée par la propriété break-after .

2
shazyriver