Est-il possible d'imprimer des pages HTML avec des en-têtes et pieds de page personnalisés sur chaque page imprimée?
Je voudrais ajouter le mot "NON CLASSIFIÉ" en rouge, Arial, taille 16 pt en haut et en bas de chaque page imprimée , quel que soit le contenu.
Pour clarifier, si le document a été imprimé sur 5 pages, chaque page doit avoir l'en-tête et le pied de page personnalisés.
Quelqu'un sait-il si cela est possible en utilisant HTML / CSS?
pisition: fixed
et lesthead tbody tfoot
techniques ont des inconvénients, vous devez donc les combiner, lisez plus ici .Réponses:
Si vous prenez l'élément que vous voulez être le pied de page et définissez-le sur position: fixed et bottom: 0, lorsque la page s'imprime, il répétera cet élément au bas de chaque page imprimée. La même chose fonctionnerait pour un élément d'en-tête, placez simplement top: 0 à la place.
Par exemple:
CSS:
la source
Je crois que la bonne réponse est que HTML 5 et CSS3 ne prennent pas en charge l'impression de l'en-tête et des pieds de page dans
print
médias.Et bien que vous puissiez le simuler avec:
ils ont chacun des bugs qui les empêchent d'être la solution générale idéale.
la source
@footer
aveccontent:"stuff"
ou similaire.Je viens de passer la meilleure moitié de ma journée à trouver une solution qui a réellement fonctionné pour moi et j'ai pensé partager ce que j'ai fait. Le problème avec les solutions ci-dessus que j'avais était que tous mes éléments de paragraphe chevaucheraient le pied de page que je voulais au bas de la page. Afin de contourner cela, j'ai utilisé le CSS suivant:
Le
page-break-inside
pourp
etcontent-block
était crucial pour moi. Chaque fois que j'ai unp
suivih*
, je les enveloppe tous les deuxdiv class = "content-block">
pour s'assurer qu'ils restent ensemble et ne se cassent pas.J'espère que quelqu'un trouve cela utile parce qu'il m'a fallu environ 3 heures pour comprendre (je suis aussi nouveau sur CSS / HTML, donc il y a ça ...)
ÉDITER
Par une demande dans les commentaires, j'ajoute un exemple de document HTML. Vous souhaiterez copier ceci dans un fichier HTML, l'ouvrir, puis choisir d'imprimer la page. L'aperçu avant impression devrait montrer ce fonctionnement. Cela a fonctionné dans Firefox et IE de mon côté, mais Chrome a fait la police assez petite pour tenir sur une seule page, donc cela n'a pas fonctionné là-bas.
la source
Je cherche depuis des années une solution et a trouvé ce post sur façon d'imprimer un pied de page qui fonctionne sur plusieurs pages sans se chevaucher.
Ma condition était IE8, jusqu'à présent, j'ai constaté que cela ne fonctionne pas dans Chrome. [ mise à jour ] Depuis le 1er mars 2018, il fonctionne également dans Chrome
Cet exemple utilise des tables et l'élément tfoot en définissant le style css:
la source
la solution magique est de tout mettre dans une seule table.
thead : c'est pour l'en-tête répété.
tfoot : le pied de page répété.
tbody : le contenu.
et faire un seul tr, td et mettre tout dans un div
CODE ::
extra : pour éviter le chevauchement avec plusieurs pages. comme:
ce qui entraîne un débordement qui fera chevaucher les choses avec l'en-tête dans les sauts de page.
alors >> utiliser:
page-break-inside: avoid !important;
avec cette classearticle
.assez simple, j'espère que cela vous donnera le meilleur résultat que vous souhaitez.
meilleures salutations. ;)
la source
À partir de cette question - ajoutez les styles suivants à une feuille de style imprimable uniquement. Cette solution fonctionnera dans IE et Firefox, mais pas dans Chrome (à partir de la version 21):
la source
Utilisez des sauts de page pour définir les styles en CSS:
Ajoutez ensuite le balisage dans le document aux endroits appropriés:
Références
Médias paginés CSS: sauts de page
MDN: saut de page avant
MDN: pause avant
Disposition à plusieurs colonnes
Impression XHTML: deuxième édition
Webkit Bug 5097: le saut de page CSS2 ne fonctionne pas
Print HTML FAQ: Le programme respectera-t-il les styles CSS tels que le saut de page?
Comment gérer les sauts de page lors de l'impression d'un grand tableau HTML
la source
if the document was printed onto 5 pages
should
ne signifie pasdon't
.If
(juste un exemple) le motif
(juste un exemple) est utilisé par l'OP, etif
(juste un exemple) l'OP n'est plus actif, est-il préférable de fournir une réponse spécifiqueif
(juste un exemple) il y a déjà des réponses génériques etif
(juste un exemple) les langues (HTML / CSS) et les spécifications en question sont conçues pour éviter l'indirection et simplifier la documentation ?If
(juste un exemple) alors pourquoi? Sinon, pourquoi pas?J'ai essayé de mener cette bataille futile en combinant les règles tfoot et css mais cela ne fonctionnait que sur Firefox :(. Lors de l'utilisation de CSS simple, le contenu circule dans le pied de page. Lors de l'utilisation de tfoot, le pied de page de la dernière page ne reste pas bien en bas Ceci est dû au fait que les pieds de table sont destinés aux tableaux et non aux pages physiques. Testé sur Chrome 16, Opera 11, Firefox 3 & 6 et IE6.
la source
Une approche qui ne fonctionne que pour ajouter des en-têtes à chaque page consiste à encapsuler votre contenu dans un
<table>
, puis à mettre votre contenu d'en-tête dans une<thead>
balise et votre contenu dans une<tbody>
balise, comme ceci:Cela fonctionne dans Chrome, pas sûr à 100% des autres navigateurs.
la source
Si vous pouvez utiliser javascipt, demandez au client de gérer le contenu à l'aide de javascript pour placer les éléments en fonction de l'espace disponible.
Vous pouvez utiliser le plugin jquery columnizer pour disposer dynamiquement votre contenu dans des blocs de taille fixe et positionner vos en-têtes et pieds de page dans le cadre de la routine de rendu. http://welcome.totheinter.net/columnizer-jquery-plugin/
Voir l'exemple 10 http://welcome.totheinter.net/autocolumn/sample10.html
Le navigateur ajoutera toujours ses propres en-têtes ou pieds de page s'il est activé dans le système d'exploitation. Une mise en page cohérente sur toutes les plateformes et tous les navigateurs nécessitera probablement un CSS conditionnel.
la source
Je suis surpris et peu impressionné par le fait que Chrome ait un support d'impression CSS aussi terrible.
Ma tâche exigeait d'afficher un pied de page légèrement différent sur chaque page. Dans le cas le plus simple, juste un numéro de chapitre et de page incrémenté. Dans les cas plus complexes, plus de texte dans le pied de page - par exemple, plusieurs notes de bas de page - qui pourrait l'agrandir, provoquant la réduction de ce qui se trouve sur la zone de contenu de cette page et une partie de celle-ci à la page suivante.
L'impression CSS ne peut pas résoudre ce problème, du moins pas avec un support de navigateur de mauvaise qualité aujourd'hui. Mais en dehors de l'impression, CSS3 peut faire beaucoup de travail:
https://jsfiddle.net/b9chris/moctxd2a/29/
SCSS:
Il y a un peu plus de code dans l'exemple, y compris du Cat Ipsum; mais le js utilisé est juste là pour démontrer combien l'en-tête / pied de page peut varier sans casser la pagination. La clé est vraiment de prendre une astuce de bas de colonne de CSS Flexbox puis de l'appliquer à une page d'une hauteur fixe connue - dans ce cas, un morceau de papier de format lettre US de 8,5 "x11", avec 0,5 "marges quittant
width: 7.5in
etheight: 10in
exactement. Une fois que le conteneur flexible CSS est informé de ses dimensions exactes (div.page
), il est facile d'obtenir l'en-tête et le pied de page pour les développer et les contracter comme ils le font dans la typographie conventionnelle.Ce qui reste est de faire couler le contenu de la page lorsque le pied de page, par exemple, passe à 8 notes de bas de page et non à 3. Dans mon cas, le contenu est suffisamment fixe pour que je n'ai pas à m'en soucier, mais je suis sûr qu'il existe un moyen pour le faire. Une approche qui me vient à l'esprit est de transformer l'en-tête et le pied de page en flottants de 100% de largeur, puis de les positionner avec Javascript. Le navigateur gérera automatiquement les interruptions du flux de contenu normal.
la source
Est-ce quelque chose que vous souhaitez imprimer uniquement? Vous pouvez l'ajouter à chaque page de votre site et utiliser CSS pour définir la balise comme support d'impression uniquement.
À titre d'exemple, cela pourrait être un exemple d'en-tête:
Et dans votre CSS, faites quelque chose comme ceci:
Enfin, pour inclure l'en-tête / pied de page sur chaque page, vous pouvez utiliser des inclusions côté serveur ou si vous avez des pages générées avec PHP ou ASP, vous pouvez simplement les coder dans un fichier commun.
Éditer:
Cette réponse est destinée à fournir un moyen de montrer quelque chose sur la version imprimée physique d'un document sans le montrer autrement. Cependant, comme le suggèrent les commentaires, cela ne résout pas le problème d'avoir un pied de page sur plusieurs pages imprimées lorsque le contenu déborde.
Je le laisse ici au cas où cela serait utile quand même.
la source
Si vous utilisez un moteur de modèle comme Asp.net Razor Engine ou Angular, je pense que vous devez régénérer votre page et diviser la page en plusieurs pages, puis vous pouvez librement baliser chaque page et mettre l'en-tête et le pied de page sur le thème. un exemple pourrait être aussi ci-dessous:
la source
J'ai trouvé une solution. L'idée de base est de créer un tableau et de placer les données de l'en-tête dans tr et par force css pour montrer que tr uniquement en impression et non à l'écran, alors votre en-tête normal devrait être forcé à s'afficher uniquement à l'écran et non pas en impression. 100% de travail sur de nombreuses pages imprimées. l'exemple de code est ici
la source
Essayez ceci, pour moi, cela fonctionne sur Chrome, Firefox et Safari. Vous obtiendrez l'en-tête et le pied de page fixés sur chaque page sans chevaucher le contenu de la page
CSS
HTML
la source
Sur la base de certains articles, je pense que cela
position: fixed
fonctionne pour moi.Appuyez sur Ctrl + P en chrome voir le texte d'en-tête et pied de page sur chaque page. J'espère que cela aide
la source