CSS Print
La principale méthode pour créer des PDFs imprimables avec des technologies du web consiste à utiliser la fonctionnalité imprimer du navigateur, de préférence sur Chromium ou Chrome.
Le CSS permet de créer des feuilles de style spécifiques à l'écran et à l'impression. Grâce à cette fonctionnalité appelé media print, il est possible d'avoir un design différent entre le rendu écran et le rendu print, et même un contenu différent.
Fonctionnement du css print
@media print {
/*Votre CSS spécifique pour le print ici*/
}
Définir le format de la page
@media print {
@page{size: A4;}
/* ou */
@page{size: 21cm 29.7cm;}
}
Définir les marges
/* Définir les marges */
@page { margin: 2cm }
/* Définir les marges de la page de gauche */
@page :left { margin: 1cm; }
/* Définir les marges de la page de droite */
@page :right { margin: 1cm; }
/* Définir les marges sur la première page, il est aussi possible de sélectionner une page en particulier */
@page :first {margin: 1cm 2cm;}
Attention, si vous voulez imprimer avec un fond de couleur, les marges seront blanches.
Sauts de page
Les 3 propriétés CSS page-break-before, page-break-after, et page-break-inside permettent de définir à quel endroit faire des sauts de page ou non.
page-break-beforepermet de gérer un saut de page avant un élément HTML.page-break-afterpermet de gérer un saut de page après un élément HTML.page-break-insideempêche un élément HTML de se couper en deux sur deux pages (comme les images par exemple)page-break-after : auto | always | avoid page-break-before : auto | always | avoid page-break-inside : auto | avoid
auto est la valeur standard, always ajoute un saut de page à chaque fois, avoid empêche un saut de page.
Par exemple:
h1, h2, h3, h4, h5, h6 {
page-break-after:avoid;
}
img {
page-break-inside:avoid;
}
Avoir des contenus différents entre la version web et la version print
Il est possible de cacher certains éléments sur le web et de les afficher sur la version print et vice-versa
@media screen{
h1 { display:none; }
}
@media print{
img { display:none }
}
Micro Typo
Tableau des espaces en Unicode Les propriétés de micro typographie ne fonctionnent pas ou très mal dans les navigateurs. Il est très compliqué de gérer les paramètres de césure, de justification et les drapeaux. Il existe quelques hacks, des ajustements à faire à la main:
- ajouter un
<span>avec unletter-spacingpour ajuster la justification - faire les drapeaux avec des
<br>ou en mettant un attributcontent-editable=truesur un element html
Prévisualisation dans le navigateur
Pour visualiser la version print directement dans le navigateur:
- Ouvrir Chromium/Chrome
- Ouvrir l’inspecteur (click droit + inspecter ou cmd/ctrl + maj + I)
- Cliquer sur les trois points en haut à droite de la fenêtre de l’inspecteur
- Puis dans le menu déroulant : More Tools > Rendering
- Une fenêtre s’ouvre, plus bas dans la section Emulate CSS media type, sélection print dans le menu déroulant
- Si vous fermez l’inspecteur, vous retournerez à une prévisualisation web/screen
Exporter une page web en PDF
- Appuyer sur ctrl/cmd + P
- Dans Destination, Choisir Fichier PDF
- Si vous avez bien déterminé le format de votre PDF et ses marges, il n’est pas nécessaire de choisir la taille du papier et le champ Marges doit afficher « Aucune »
- L’option Graphiques d’arrière-plan doit être cochée
- Cliquer sur « Enregistrer »
Exercice
À partir de la page web développé dans l’exercice précédent, en faire une version imprimable en A5.