Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- ob_start();
- ?><!doctype html>
- <html lang="fr-FR">
- <head>
- <meta charset="UTF-8">
- <style>
- @page { /* 793px*1122px de surface exploitable */
- margin: 40px 0px 30px 0px; /* margin en haut et en bas pour la hauteur du header et du footer */
- }
- body {
- background: lightgray;
- }
- header {
- position: fixed;
- top: -40px;
- left: 0px;
- right: 0px;
- height: 40px;
- text-align: center;
- background-color: lightblue;
- }
- footer {
- position: fixed;
- bottom: -30px;
- left: 0px;
- right: 0px;
- height: 30px;
- text-align: center;
- background-color: lightgreen;
- }
- .page-break {
- page-break-before: always;
- }
- .div-exemple-normale {
- background: red;
- }
- .div-exemple-margin {
- padding: 10px;
- margin: 0 50px;
- background: pink;
- }
- .div-exemple-fullwidth {
- padding: 10px;
- margin: 10px -60px; /* les margins négatifs des côtés doivent compenser pour le padding du parent, donc 60px au lieu de 50px */
- background: orange;
- }
- .logo-estia {
- width: 100px;
- }
- </style>
- </head>
- <body>
- <header>
- Header de 40px de haut qui se répète sur chaque page
- </header>
- <footer>
- Footer de 30px de haut qui se répète sur chaque page
- </footer>
- <div class="div-exemple-normale">Exemple de div normale qui prend toute la largeur</div>
- <div class="div-exemple-margin">
- Exemple de div avec une marge à gauche et à droite
- <div class="div-exemple-fullwidth">
- Exemple de div normale qui prend toute la largeur en étant à l'intérieur d'une div avec marge
- </div>
- Et une petite image : <img class="logo-estia" src="<?= getcwd().'/img/logo-estia.png' ?>" /> <!-- toujours utiliser un chemin absolu pour l'appel d'image -->
- </div>
- <div class="page-break"></div>
- Là on a forcé le passage à la page suivante grâce au style <i>page-break-before: always;</i> de la div <i>.page-break</i> !<br />
- <br />
- Pro tip : TOUJOURS éviter qu'un bloc dépasse la hauteur d'une page, en effet dompdf n'est pas capable de scinder un bloc en deux et va tenter de passer le bloc entier sur la page suivante, et si ce bloc s'avère plus grand qu'une page ça va foirer de ouf et créer plein de pages vides, dunc toujours diviser l'inté au maximum dans le sens de la haiteur, notamment sur les tableaux produits, faire des colonnes à largeur fixes et que chaque ligne soit indépendante.<br />
- <br />
- D'une manière générale, coder dans un HTML/CSS le plus basique et arriéré possible :)
- </body>
- </html><?php
- $html = ob_get_clean();
- require_once('dompdf/dompdf_config.inc.php');
- $dompdf = new DOMPDF();
- $dompdf -> set_base_path(realpath(dirname(__FILE__)).'/');
- $dompdf -> set_paper('A4'); // 793px*1122px
- $dompdf -> load_html($html); // utf-8
- $dompdf -> render();
- header("Content-type:application/pdf");
- echo $dompdf->output();
- die();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement