comment éviter la page blanche à la fin lors de l'impression?
Je suis en utilisant une propriété CSS,
Si j'utilise page-break-after: always;
=> Il imprime une page blanche supplémentaire avant
Si j'utilise page-break-before: always;
=> Il imprime une page blanche supplémentaire après. Comment l'éviter?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
.print{
page-break-after: always;
}
</style>
<script type="text/javascript">
window.print();
</script>
</head>
<body>
<div class="print">fd</div>
<div class="print">fdfd</div>
</body>
</html>
- quelle est la hauteur de la classe d'impression?
- Que ce soit pour les factures de la hauteur va être dynamique que par l'absence d'éléments.
- C'est ainsi que nous l'avons fait dans la guerre froide:
<div>This page intentionally left blank.</div>
Vous devez vous connecter pour publier un commentaire.
Vous pourriez peut-être ajouter
donc le dernier
print
élément ne sera pas obtenir le plus de saut de page.Ne remarque que l' :dernier-sélecteur d'enfant n'est pas pris en charge dans IE8, si vous êtes à cibler qu'misérable d'un navigateur.
Avez-vous essayé ceci?
height: 100%
. J'ai été en mesure de remplacer ce avecheight: auto
height: auto;
est plus élégante queheight: 99%;
Solution décrite ici m'a aidé (webarchive lien).
Tout d'abord, vous pouvez ajouter une bordure à tous les éléments pour voir quelles sont les causes d'une nouvelle page ajoutée (peut-être que certaines marges, les rembourrages, etc).
Et la solution elle-même était d'ajouter les styles suivants:
si Aucune de ces œuvres, essayez cette
assurez-vous qu'il est 100vh
Cela fonctionne pour moi
Ne sais pas (pour l'instant) pourquoi, mais celui-ci m'a aidé:
Espère que quelqu'un va enregistrer ses cheveux tout en luttant contre le problème... 😉
Si vous voulez juste utiliser des CSS et que vous voulez éviter de saut de page, puis utilisez
Prendre un coup d'oeil à paginé de médias
Vous pouvez utiliser des scripts équivalents pour pageBreakBefore et pageBreakAfter,attribuer dynamiquement leurs valeurs. Par exemple, au lieu de forcer les sauts de page personnalisé de vos visiteurs, vous pouvez créer un script pour faire cette option. Ici, je vais créer une case à cocher qui permet de basculer entre le découpage de la page à l'en-tête (h2) et de l'imprimante discrétion (par défaut):
Cliquez sur ici pour un exemple qui utilise cette. Vous pouvez remplacer H2 à l'intérieur du script avec un autre tag tel un P ou d'un DIV.
http://www.javascriptkit.com/dhtmltutors/pagebreak.shtml
ensemble
display:none
pour tous les autres éléments qui ne sont pas pour les tirages.réglage
visibility:hidden
va les tenir cachés, mais ils sont tous encore là et ont pris place pour eux. page vide, c'est pour ceux d'éléments cachés.Dans mon cas, le réglage de la largeur de tous les divs aidé:
J'ai changé css display et la largeur de la propriété de la zone d'impression
CSS:
Après avoir lutté avec les différents saut de page des paramètres et des hauteurs, et un million de différentes règles CSS sur la balise body, j'ai finalement résolu à plus d'un an plus tard.
J'ai un div qui est censé être la seule chose sur la page qui s'imprime, mais j'ai été faire plusieurs pages vierges après elle.
Mon corps balise est définie à
visibility:hidden;
mais ce n'était pas assez. Verticalement de haut de page les éléments occupent toujours de "l'espace". J'ai donc ajouté ceci dans mon impression règles CSS:cibler des divs par leur id qui contiennent haut de la page éléments de mise en page. J'ai diminué la hauteur et ensuite retirés de la mise en page. Pas plus de pages vierges. Des années plus tard, je suis heureux de dire à mon client, j'ai craqué. Espérons que cela aide quelqu'un.
visibility: hidden;
il va encore prendre de la place. Si vous utilisezdisplay: none;
l'espace sera supprimé. À ce stade, vous n'aurez pas besoin de configurer la hauteur, juste pour info.Semble qu'il y a beaucoup de causes possibles, avec la probable thème que le corps de la balise se termine avec une hauteur trop grande pour le w/e raison.
Ma cause:
min-height: 100%
dans une base de feuille de style.Ma solution:
min-height: auto
dans un@media print
directive.Note,
auto
ne semble pas être une valeur correcte, selon PhpStorm. Cependant, il est correct d'après Mozilla la documentation sur le min-height:initial
depuis que j'ai supposé qu'il serait problématique pour dynamiquement la taille des éléments. Notez que la valeur initiale est 0, j'ai donc toujours supposer queauto
est généralement plus utile.Ajouter cette css à la même page pour étendre fichier css.
J'ai essayé toutes les solutions, cela fonctionne pour moi:
Chrome semble avoir un bug où, dans certaines situations, en masquant les éléments de la post-charge avec un display:none, laisse beaucoup d'espace supplémentaire derrière. Je dirais qu'ils sont le calcul de la hauteur avant que le document est en fait le rendu. Google Chrome est également 2 feux des médias les événements de changement, et ne prend pas en charge onbeforeprint, etc. Ils sont essentiellement l'ie de l'impression. Voici ma solution:
Vous donner le corps class="impression" sur la doc prêt, et qui permet de styles d'impression. Ce système permet la modularisation de styles d'impression, et dans le navigateur de prévisualisation d'impression.
Je viens de rencontré un cas où la modification de
à
corrigé ce problème.
Cela a fonctionné pour moi.
J'ai eu un problème similaire, mais la cause était parce que j'avais 40px de marge au bas de la page, de sorte que la dernière ligne serait toujours envelopper même si il y avait de la place sur la dernière page. Non pas parce que de toute sorte de
page-break-*
css commande. Je fixe par retrait de la marge de l'impression et il a bien fonctionné. Je voulais juste rajouter ma solution au cas où quelqu'un d'autre a quelque chose de similaire!Aucune des réponses ont travaillé avec moi, mais après la lecture de tous les d'eux, j'ai compris quel était le problème dans mon cas
J'ai 1 page Html que je veux imprimer, mais il a l'impression d'une page vierge extra blanc.
Je suis à l'aide de AdminLTE un bootstrap 3 thème pour la page de l'impression du rapport et dans le pied de page de la balise, je voulais placer ce texte en bas à droite de la page:
J'ai utilisé jquery pour mettre ce texte au lieu de la précédente "Droits de Copie" un pied de page avec
et par défaut dans le thème de la balise footer utilise la classe .main-pied
qui a les attributs
qui a causé un espace blanc supplémentaire, donc après avoir pris connaissance de la question, j'avais différentes options, et la meilleure option est d'utiliser
Dans cette page spécifique
Étrangement définition d'une bordure transparente résolu ce problème pour moi:
Peut-être que ça suffira à la frontière sur l'élément conteneur. <- Untestet.
Mettre les trucs dont vous avez besoin sur une page dans un div et de l'utilisation de la page-break-inside:éviter à la div.
Votre div restera sur une seule page et aller sur un deuxième ou troisième page, si nécessaire, mais la prochaine div, devrait-il avoir à faire un saut de page, devrait commencer à la page suivante.