Comment utiliser le langage HTML pour imprimer l'en-tête et pied de page sur chaque page imprimée d'un document?
Est-il possible d'imprimer des pages HTML avec des en-têtes personnalisés et des pieds de page sur chaque page imprimée?
Je tiens à ajouter le mot "non classé" en Rouge, en police Arial, taille 16pt en haut et en bas de chaque imprimé page, quel que soit le contenu.
De clarifier, si le document a été imprimé sur du 5 pages, chaque page doit avoir la coutume d'en-tête et pied de page.
Quelqu'un sait si c'est possible en utilisant le HTML/CSS?
- Voir Pourquoi utiliser XSL-FO au lieu de CSS2, pour transformer le HTML en bonne PDF? question et les réponses.
- C'est une question à laquelle je tente de répondre pendant une longue période. Regarde comme la clé du problème serait css des éléments de page, en haut au centre, le contenu, la position: en cours d'exécution(..). À quoi ça pourrait ressembler si les navigateurs ne soutenons pleinement @page: techrepublic.com/blog/webmaster/... alistapart.com/articles/boom alistapart.com/articles/building-books-with-css3 Certaines questions ouvertes: code.google.com/p/chromium/issues/detail?id=47277 bugs.webkit.org/show_bug.cgi?id=15548
- J'ai posté un Chrome-compatible solution here qui permettra d'ajouter un en-tête pour les documents qui ne contiennent pas trop de grandes étendues de texte. Toujours pas de solution pour les pieds de page, cependant.
- Combinatoire Solution: les deux
pisition: fixed
etthead tbody tfoot
techniques ont des inconvénients, donc vous devez les combiner, en savoir plus ici.
InformationsquelleAutor | 2009-09-01
Vous devez vous connecter pour publier un commentaire.
Si vous prenez l'élément que vous souhaitez être le pied de page et il faut le position:fixed et bas:0, lors de l'impression de la page, il va répéter l'élément en bas de chaque page imprimée. Le principe est le même travail pour un élément d'en-tête, il suffit de définir top:0 à la place.
Par exemple:
CSS:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
est ce que j'ai dans ma page de test.firefox 43.0.1
etchrome 47
je crois que la bonne réponse est que le HTML 5 et le CSS3 n'ont aucun support pour l'impression de la page en-tête et pieds de page dans
print
médias.Et alors que vous pourriez être en mesure de le simuler avec:
ils ont chacun des bugs qui empêchent d'être l'idéal de solution générale.
@footer
aveccontent:"stuff"
ou semblables.Je viens de passer la moitié de ma journée à venir avec une solution qui fonctionne pour moi et je pensais que je voudrais partager ce que j'ai fait. Le problème avec les solutions ci-dessus que j'ai eu était que tous mes alinéa éléments se chevauchent avec le pied de page que je voulais au bas de la page. Pour contourner ce problème, j'ai utilisé le code CSS suivant:
La
page-break-inside
pourp
etcontent-block
a été crucial pour moi. Toute fois j'ai unp
à la suite d'uneh*
, je enveloppez-les dans undiv class = "content-block">
pour s'assurer qu'ils restent ensemble et ne se cassent pas.Je suis en espérant que quelqu'un trouve cela utile, car il m'a fallu environ 3 heures pour comprendre (je suis aussi nouvelle en CSS/HTML, donc il n'y a que...)
MODIFIER
Par une demande dans les commentaires, je suis l'ajout d'un exemple de document HTML. Vous aurez envie de les copier dans un fichier HTML, ouvrez-le, puis choisissez d'imprimer la page. L'aperçu avant impression doit de montrer ce travail. Il a travaillé dans IE et Firefox sur ma fin, mais Chrome fait la police assez petit pour tenir sur une seule page, donc il n'avait pas d'y travailler.
CSS:
HTML:
header
n'est jamais mentionné dans le CSS. Vous devez le modifier pour gérer l'en-tête.J'ai cherché pendant des années pour trouver une solution et j'ai trouvé ce post sur comment imprimer un pied de page qui fonctionne sur plusieurs pages, sans chevauchement contenu de la page.
Mon exigence était IE8, pour l'instant j'ai trouvé que cela ne fonctionne pas dans google Chrome. [mise à jour]depuis le 1er Mars 2018, il fonctionne dans Chrome ainsi
Cet exemple utilise des tables et le pied de page de l'élément de réglage de la feuille de style css:
De cette question -- ajouter les styles suivants pour imprimer une seule feuille de style. Cette solution fonctionne dans IE et Firefox, mais pas dans Chrome (de la version 21):
Utilisation les sauts de page pour définir les styles CSS:
Puis ajouter les balises dans le document aux endroits appropriés:
Références
CSS Paginé Médias: les Sauts de Page
MDN: page-break-before
MDN: break-before
Multi-colonnes de Mise en page
XHTML Impression: Deuxième Édition
Webkit Bug 5097: CSS2 page-break-after ne fonctionne pas
Imprimer HTML FAQ: le programme de respect des styles CSS comme page-break-after?
Comment gérer les sauts de page lors de l'impression d'une grande table HTML
don't
.If
(juste un exemple), le motif
(juste un exemple) est utilisé par les OP, etif
(juste un exemple), l'OP n'est plus actif, est-il préférable de fournir une réponse préciseif
(juste un exemple) il y a déjà des réponses génériques etif
(juste un exemple) les langages(HTML/CSS) et les spécifications en question sont conçu éviter d'indirection et de simplifier les documentation?If
(juste un exemple) donc, pourquoi? Sinon, pourquoi pas?la solution magique est vraiment de mettre chaque chose dans une seule table.
thead: c'est par la répétition de l'en-tête.
tfoot: la répétition de pied de page.
tbody: le contenu.
et faire une seule tr, td et de mettre chaque chose dans un div
CODE::
supplémentaire: pour éviter le chevauchement de plusieurs pages. comme:
qui entraîne le débordement qui rendra les choses se chevauchent avec l'en-tête dans les sauts de page..
donc >> utilisation:
page-break-inside: avoid !important;
avec cette classearticle
.assez simple, j'espère que ça vous donnera le meilleur résultat en vous souhaitant.
salutations les meilleures. 😉
J'ai essayé de lutter contre cette bataille inutile combinant tfoot & css règles, mais il n'a travaillé que sur Firefox :(. Lors de l'utilisation de la plaine de css, le contenu s'écoule sur le pied de page. Lors de l'utilisation de pied de page, pied de page sur la dernière page ne reste pas bien sur le fond. C'est parce que les pieds de table sont conçus pour les tables, pas de pages physiques. Testé sur Chrome 16, Opera 11, Firefox 3 & 6 et IE6.
Une approche qui ne fonctionne que pour ajouter des en-têtes de chaque page est d'envelopper votre contenu dans un
<table>
, puis de mettre votre contenu en tête dans un<thead>
tag et votre contenu dans un<tbody>
la balise:Cela fonctionne dans Chrome, pas sûr à 100% sur les autres navigateurs.
tfoot
de travail, désolé!Si vous pouvez utiliser javascipt, le client poignée de pose du contenu à l'aide de javascript à placer des éléments en fonction de l'espace disponible.
Vous pouvez utiliser le jquery colonnisseur plugin dynamiquement à organiser votre contenu en blocs de taille fixe, et vos en-têtes et pieds de page dans le cadre de l'rendu de la routine.
http://welcome.totheinter.net/columnizer-jquery-plugin/
Voir l'exemple 10
http://welcome.totheinter.net/autocolumn/sample10.html
Le navigateur va encore ajouter ses propres en-têtes ou pieds de page si l'option est activée dans le système d'exploitation. Mise en page cohérente sur toutes les plateformes et navigateurs nécessitera probablement conditionnelle css.
Est-ce quelque chose que vous voulez imprimer seulement? Vous pourriez ajouter à chaque page de votre site et utiliser les CSS pour définir la balise comme une impression de médias.
Comme un exemple, ce pourrait être un exemple d'en-tête:
Et dans votre CSS, faire 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 le code dans un fichier commun.
Edit:
Cette réponse est destinée à fournir un moyen de montrer quelque chose sur la physique de la version imprimée d'un document tout en ne montrant pas le contraire. Cependant, tout comme les commentaires le suggèrent, il ne résout pas la question d'avoir un pied de page sur plusieurs pages imprimées lorsque le contenu déborde.
Je vais la laisser ici, dans le cas où c'est utile quand même.
Si vous utilisez un moteur de template comme Asp.net Moteur de Rasoir ou Angulaire,
Je pense que vous devez re-générer votre page et de diviser la page en plusieurs pages et vous pouvez alors librement de balisage de chaque page et de mettre en-tête et pied de page sur le thème.
un exemple pourrait être comme ci-dessous:
CSS:
HTML:
J'ai trouvé une solution. L'idée de base est de faire un tableau et dans la section thead placer les données de la tête dans la tr et en css force pour montrer que tr uniquement en mode pas à l'écran, puis normal de votre en-tête doit être force de montrer que dans l'écran de ne pas en imprimer. 100% de travail sur le nombre de pages à imprimer. exemple de code est ici
Si vous ne t besoin de la mise en forme utiliser
document.title
et qui fonctionne comme un charme dans tous les principaux navigateurs (testé sur Chrome , IE 11, Firefox).Ou vous pouvez utiliser