tuto2.htm 5.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  5. <title>En-tête, pied de page, saut de page et image</title>
  6. <link type="text/css" rel="stylesheet" href="../fpdf.css">
  7. </head>
  8. <body>
  9. <h1>En-tête, pied de page, saut de page et image</h1>
  10. Voici un exemple de deux pages avec en-tête, pied de page et logo :
  11. <div class="source">
  12. <pre><code>&lt;?php
  13. <span class="kw">require(</span><span class="str">'fpdf.php'</span><span class="kw">);
  14. class </span>PDF <span class="kw">extends </span>FPDF
  15. <span class="kw">{
  16. </span><span class="cmt">//En-tête
  17. </span><span class="kw">function </span>Header<span class="kw">()
  18. {
  19. </span><span class="cmt">//Logo
  20. </span>$<span class="kw">this-&gt;</span>Image<span class="kw">(</span><span class="str">'logo_pb.png'</span><span class="kw">,</span>10<span class="kw">,</span>8<span class="kw">,</span>33<span class="kw">);
  21. </span><span class="cmt">//Police Arial gras 15
  22. </span>$<span class="kw">this-&gt;</span>SetFont<span class="kw">(</span><span class="str">'Arial'</span><span class="kw">,</span><span class="str">'B'</span><span class="kw">,</span>15<span class="kw">);
  23. </span><span class="cmt">//Décalage à droite
  24. </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>80<span class="kw">);
  25. </span><span class="cmt">//Titre
  26. </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>30<span class="kw">,</span>10<span class="kw">,</span><span class="str">'Titre'</span><span class="kw">,</span>1<span class="kw">,</span>0<span class="kw">,</span><span class="str">'C'</span><span class="kw">);
  27. </span><span class="cmt">//Saut de ligne
  28. </span>$<span class="kw">this-&gt;</span>Ln<span class="kw">(</span>20<span class="kw">);
  29. }
  30. </span><span class="cmt">//Pied de page
  31. </span><span class="kw">function </span>Footer<span class="kw">()
  32. {
  33. </span><span class="cmt">//Positionnement à 1,5 cm du bas
  34. </span>$<span class="kw">this-&gt;</span>SetY<span class="kw">(-</span>15<span class="kw">);
  35. </span><span class="cmt">//Police Arial italique 8
  36. </span>$<span class="kw">this-&gt;</span>SetFont<span class="kw">(</span><span class="str">'Arial'</span><span class="kw">,</span><span class="str">'I'</span><span class="kw">,</span>8<span class="kw">);
  37. </span><span class="cmt">//Numéro de page
  38. </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>0<span class="kw">,</span>10<span class="kw">,</span><span class="str">'Page '</span><span class="kw">.</span>$<span class="kw">this-&gt;</span>PageNo<span class="kw">().</span><span class="str">'/{nb}'</span><span class="kw">,</span>0<span class="kw">,</span>0<span class="kw">,</span><span class="str">'C'</span><span class="kw">);
  39. }
  40. }
  41. </span><span class="cmt">//Instanciation de la classe dérivée
  42. </span>$pdf<span class="kw">=new </span>PDF<span class="kw">();
  43. </span>$pdf<span class="kw">-&gt;</span>AliasNbPages<span class="kw">();
  44. </span>$pdf<span class="kw">-&gt;</span>AddPage<span class="kw">();
  45. </span>$pdf<span class="kw">-&gt;</span>SetFont<span class="kw">(</span><span class="str">'Times'</span><span class="kw">,</span><span class="str">''</span><span class="kw">,</span>12<span class="kw">);
  46. for(</span>$i<span class="kw">=</span>1<span class="kw">;</span>$i<span class="kw">&lt;=</span>40<span class="kw">;</span>$i<span class="kw">++)
  47. </span>$pdf<span class="kw">-&gt;</span>Cell<span class="kw">(</span>0<span class="kw">,</span>10<span class="kw">,</span><span class="str">'Impression de la ligne numéro '</span><span class="kw">.</span>$i<span class="kw">,</span>0<span class="kw">,</span>1<span class="kw">);
  48. </span>$pdf<span class="kw">-&gt;</span>Output<span class="kw">();
  49. </span>?&gt;</code></pre>
  50. </div>
  51. <p class='demo'><a href='tuto2.php' target='_blank' class='demo'>[Démo]</a></p>
  52. Cet exemple exploite les méthodes <a href='../doc/header.htm'>Header()</a> et <a href='../doc/footer.htm'>Footer()</a> pour traiter les en-têtes et
  53. pieds de page. Elles sont appelées automatiquement. Leur implémentation dans la classe FPDF
  54. est vide, aussi doit-on dériver la classe et les redéfinir.
  55. <br>
  56. <br>
  57. Le logo est imprimé grâce à la méthode <a href='../doc/image.htm'>Image()</a> en précisant le coin supérieur gauche et
  58. la largeur. La hauteur est calculée automatiquement afin de respecter la proportion de l'image.
  59. <br>
  60. <br>
  61. Pour imprimer le numéro de page, une valeur nulle est passée comme largeur de cellule. Cela
  62. signifie que cette dernière doit s'étendre jusqu'à la marge droite de la page ; c'est pratique
  63. pour centrer du texte. Le numéro de page courant est retourné par la méthode <a href='../doc/pageno.htm'>PageNo()</a> ; le
  64. nombre total de pages s'obtient quant à lui grâce à la valeur spéciale <code>{nb}</code> qui sera
  65. substituée lorsque le document sera terminé (à condition d'avoir au préalable appelé
  66. <a href='../doc/aliasnbpages.htm'>AliasNbPages()</a>).
  67. <br>
  68. A noter l'utilisation de la méthode <a href='../doc/sety.htm'>SetY()</a> qui permet de se
  69. positionner de manière absolue dans la page, à partir du haut ou du bas.
  70. <br>
  71. <br>
  72. Une autre fonctionnalité intéressante est ici utilisée : le saut de page automatique. Lorsqu'une cellule
  73. descend trop bas (à 2 centimètres du bas de la page par défaut), un saut de page est effectué
  74. et la police est restaurée. Bien que l'en-tête et le pied de page spécifient leur propre
  75. police (Arial), le corps de la page continue en Times. Ce principe de restauration automatique
  76. s'applique aussi à l'épaisseur des traits et aux couleurs. Le seuil de déclenchement du saut
  77. de page se règle avec <a href='../doc/setautopagebreak.htm'>SetAutoPageBreak()</a>.
  78. </body>
  79. </html>