tuto3.htm 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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>Retour du texte à la ligne et couleurs</title>
  6. <link type="text/css" rel="stylesheet" href="../fpdf.css">
  7. </head>
  8. <body>
  9. <h1>Retour du texte à la ligne et couleurs</h1>
  10. Voici pour continuer un exemple imprimant des paragraphes de texte justifié. Il illustre
  11. également l'utilisation des couleurs.
  12. <div class="source">
  13. <pre><code>&lt;?php
  14. <span class="kw">require(</span><span class="str">'fpdf.php'</span><span class="kw">);
  15. class </span>PDF <span class="kw">extends </span>FPDF
  16. <span class="kw">{
  17. function </span>Header<span class="kw">()
  18. {
  19. global </span>$titre<span class="kw">;
  20. </span><span class="cmt">//Arial gras 15
  21. </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">);
  22. </span><span class="cmt">//Calcul de la largeur du titre et positionnement
  23. </span>$w<span class="kw">=</span>$<span class="kw">this-&gt;</span>GetStringWidth<span class="kw">(</span>$titre<span class="kw">)+</span>6<span class="kw">;
  24. </span>$<span class="kw">this-&gt;</span>SetX<span class="kw">((</span>210<span class="kw">-</span>$w<span class="kw">)/</span>2<span class="kw">);
  25. </span><span class="cmt">//Couleurs du cadre, du fond et du texte
  26. </span>$<span class="kw">this-&gt;</span>SetDrawColor<span class="kw">(</span>0<span class="kw">,</span>80<span class="kw">,</span>180<span class="kw">);
  27. </span>$<span class="kw">this-&gt;</span>SetFillColor<span class="kw">(</span>230<span class="kw">,</span>230<span class="kw">,</span>0<span class="kw">);
  28. </span>$<span class="kw">this-&gt;</span>SetTextColor<span class="kw">(</span>220<span class="kw">,</span>50<span class="kw">,</span>50<span class="kw">);
  29. </span><span class="cmt">//Epaisseur du cadre (1 mm)
  30. </span>$<span class="kw">this-&gt;</span>SetLineWidth<span class="kw">(</span>1<span class="kw">);
  31. </span><span class="cmt">//Titre centré
  32. </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>$w<span class="kw">,</span>9<span class="kw">,</span>$titre<span class="kw">,</span>1<span class="kw">,</span>1<span class="kw">,</span><span class="str">'C'</span><span class="kw">,</span>true<span class="kw">);
  33. </span><span class="cmt">//Saut de ligne
  34. </span>$<span class="kw">this-&gt;</span>Ln<span class="kw">(</span>10<span class="kw">);
  35. }
  36. function </span>Footer<span class="kw">()
  37. {
  38. </span><span class="cmt">//Positionnement à 1,5 cm du bas
  39. </span>$<span class="kw">this-&gt;</span>SetY<span class="kw">(-</span>15<span class="kw">);
  40. </span><span class="cmt">//Arial italique 8
  41. </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">);
  42. </span><span class="cmt">//Couleur du texte en gris
  43. </span>$<span class="kw">this-&gt;</span>SetTextColor<span class="kw">(</span>128<span class="kw">);
  44. </span><span class="cmt">//Numéro de page
  45. </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>0<span class="kw">,</span>0<span class="kw">,</span><span class="str">'C'</span><span class="kw">);
  46. }
  47. function </span>TitreChapitre<span class="kw">(</span>$num<span class="kw">,</span>$lib<span class="kw">)
  48. {
  49. </span><span class="cmt">//Arial 12
  50. </span>$<span class="kw">this-&gt;</span>SetFont<span class="kw">(</span><span class="str">'Arial'</span><span class="kw">,</span><span class="str">''</span><span class="kw">,</span>12<span class="kw">);
  51. </span><span class="cmt">//Couleur de fond
  52. </span>$<span class="kw">this-&gt;</span>SetFillColor<span class="kw">(</span>200<span class="kw">,</span>220<span class="kw">,</span>255<span class="kw">);
  53. </span><span class="cmt">//Titre
  54. </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>0<span class="kw">,</span>6<span class="kw">,</span><span class="str">"Chapitre $num : $lib"</span><span class="kw">,</span>0<span class="kw">,</span>1<span class="kw">,</span><span class="str">'L'</span><span class="kw">,</span>true<span class="kw">);
  55. </span><span class="cmt">//Saut de ligne
  56. </span>$<span class="kw">this-&gt;</span>Ln<span class="kw">(</span>4<span class="kw">);
  57. }
  58. function </span>CorpsChapitre<span class="kw">(</span>$fichier<span class="kw">)
  59. {
  60. </span><span class="cmt">//Lecture du fichier texte
  61. </span>$f<span class="kw">=</span>fopen<span class="kw">(</span>$fichier<span class="kw">,</span><span class="str">'r'</span><span class="kw">);
  62. </span>$txt<span class="kw">=</span>fread<span class="kw">(</span>$f<span class="kw">,</span>filesize<span class="kw">(</span>$fichier<span class="kw">));
  63. </span>fclose<span class="kw">(</span>$f<span class="kw">);
  64. </span><span class="cmt">//Times 12
  65. </span>$<span class="kw">this-&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">);
  66. </span><span class="cmt">//Sortie du texte justifié
  67. </span>$<span class="kw">this-&gt;</span>MultiCell<span class="kw">(</span>0<span class="kw">,</span>5<span class="kw">,</span>$txt<span class="kw">);
  68. </span><span class="cmt">//Saut de ligne
  69. </span>$<span class="kw">this-&gt;</span>Ln<span class="kw">();
  70. </span><span class="cmt">//Mention en italique
  71. </span>$<span class="kw">this-&gt;</span>SetFont<span class="kw">(</span><span class="str">''</span><span class="kw">,</span><span class="str">'I'</span><span class="kw">);
  72. </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>0<span class="kw">,</span>5<span class="kw">,</span><span class="str">'(fin de l\'extrait)'</span><span class="kw">);
  73. }
  74. function </span>AjouterChapitre<span class="kw">(</span>$num<span class="kw">,</span>$titre<span class="kw">,</span>$fichier<span class="kw">)
  75. {
  76. </span>$<span class="kw">this-&gt;</span>AddPage<span class="kw">();
  77. </span>$<span class="kw">this-&gt;</span>TitreChapitre<span class="kw">(</span>$num<span class="kw">,</span>$titre<span class="kw">);
  78. </span>$<span class="kw">this-&gt;</span>CorpsChapitre<span class="kw">(</span>$fichier<span class="kw">);
  79. }
  80. }
  81. </span>$pdf<span class="kw">=new </span>PDF<span class="kw">();
  82. </span>$titre<span class="kw">=</span><span class="str">'Vingt mille lieues sous les mers'</span><span class="kw">;
  83. </span>$pdf<span class="kw">-&gt;</span>SetTitle<span class="kw">(</span>$titre<span class="kw">);
  84. </span>$pdf<span class="kw">-&gt;</span>SetAuthor<span class="kw">(</span><span class="str">'Jules Verne'</span><span class="kw">);
  85. </span>$pdf<span class="kw">-&gt;</span>AjouterChapitre<span class="kw">(</span>1<span class="kw">,</span><span class="str">'UN ÉCUEIL FUYANT'</span><span class="kw">,</span><span class="str">'20k_c1.txt'</span><span class="kw">);
  86. </span>$pdf<span class="kw">-&gt;</span>AjouterChapitre<span class="kw">(</span>2<span class="kw">,</span><span class="str">'LE POUR ET LE CONTRE'</span><span class="kw">,</span><span class="str">'20k_c2.txt'</span><span class="kw">);
  87. </span>$pdf<span class="kw">-&gt;</span>Output<span class="kw">();
  88. </span>?&gt;</code></pre>
  89. </div>
  90. <p class='demo'><a href='tuto3.php' target='_blank' class='demo'>[Démo]</a></p>
  91. La méthode <a href='../doc/getstringwidth.htm'>GetStringWidth()</a> permet de déterminer la longueur d'une chaîne dans la police
  92. courante, ce qui est utilisé ici pour calculer la largeur du cadre entourant le titre. Puis
  93. les couleurs sont définies (via <a href='../doc/setdrawcolor.htm'>SetDrawColor()</a>, <a href='../doc/setfillcolor.htm'>SetFillColor()</a> et <a href='../doc/settextcolor.htm'>SetTextColor()</a>)
  94. et l'épaisseur du trait positionnée à 1 mm (contre 0,2 par défaut) grâce à <a href='../doc/setlinewidth.htm'>SetLineWidth()</a>.
  95. Il ne reste alors plus qu'à imprimer la cellule pour le titre (le dernier paramètre à 1 indique
  96. que le fond doit être coloré).
  97. <br>
  98. <br>
  99. La méthode permettant d'imprimer les paragraphes est <a href='../doc/multicell.htm'>MultiCell()</a>. A chaque fois qu'une
  100. ligne arrive à l'extrémité droite de la cellule ou qu'un caractère de retour-chariot est
  101. rencontré, un saut est effectué et une nouvelle cellule automatiquement créée sous la
  102. précédente. Le texte est justifié par défaut.
  103. <br>
  104. <br>
  105. Deux propriétés du document sont renseignées : le titre (<a href='../doc/settitle.htm'>SetTitle()</a>) et l'auteur
  106. (<a href='../doc/setauthor.htm'>SetAuthor()</a>). Les propriétés sont visibles de deux manières différentes. La première
  107. consiste à ouvrir le document directement avec Acrobat Reader, à aller dans le menu Fichier
  108. et à choisir l'option Propriétés. La seconde, disponible également à partir du plug-in,
  109. consiste à faire un clic droit et à choisir Propriétés du document.
  110. </body>
  111. </html>