tuto2.htm 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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>Cabecera, pie, salto de página e imagen</title>
  6. <link type="text/css" rel="stylesheet" href="../fpdf.css">
  7. </head>
  8. <body>
  9. <h1>Cabecera, pie, salto de página e imagen</h1>
  10. Aquí tenemos un ejemplo de dos páginas con cabacera, pie de página y logotipo:
  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">// Cabecera de página
  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">// Arial bold 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">// Movernos a la derecha
  24. </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>80<span class="kw">);
  25. </span><span class="cmt">// Título
  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">'Title'</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">// Salto de línea
  28. </span>$<span class="kw">this-&gt;</span>Ln<span class="kw">(</span>20<span class="kw">);
  29. }
  30. </span><span class="cmt">// Pie de página
  31. </span><span class="kw">function </span>Footer<span class="kw">()
  32. {
  33. </span><span class="cmt">// Posición: a 1,5 cm del final
  34. </span>$<span class="kw">this-&gt;</span>SetY<span class="kw">(-</span>15<span class="kw">);
  35. </span><span class="cmt">// Arial italic 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">// Número de página
  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">// Creación del objeto de la clase heredada
  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">'Imprimiendo línea número '</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'>[Demo]</a></p>
  52. Este ejemplo hace uso de los métodos <a href='../doc/header.htm'>Header()</a> y <a href='../doc/footer.htm'>Footer()</a> para procesar las
  53. cabeceras y pies de páginas. Se llaman automáticamente. Ya existen en la clase FPDF
  54. origuinal, pero no hacen nada. Por ello, tenemos que heredar la clase y sobreescribirlos.
  55. <br>
  56. <br>
  57. El logotipo se imprime con el método <a href='../doc/image.htm'>Image()</a> especificando su esquina superior
  58. izquierda y su anchura. La altura se calcula automáticamente respetando las proporciones
  59. de la imagen.
  60. <br>
  61. <br>
  62. Para imprimir el número de página, se le pasa un valor nulo (null) como ancho de la celda. Eso
  63. significa que la celda se extenderá hasta el margen derecho de la página; puede ser útil centrar
  64. el texto. El número actual de la página se devuelve por el métodos <a href='../doc/pageno.htm'>PageNo()</a>;
  65. mientras que el número total de páginas se obtiene mediante un valor especial de
  66. <code>{nb}</code> que será sustituido cuando se cierre el documento (suponiendo que
  67. usted antes utilizara <a href='../doc/aliasnbpages.htm'>AliasNbPages()</a>).
  68. <br>
  69. Observe el uso del método <a href='../doc/sety.htm'>SetY()</a> que le permite especificar la posición en una
  70. ubicación absoluta respecto del origen de coordenadas de la página, empezando por
  71. el principio o por el final.
  72. <br>
  73. <br>
  74. Otra característica interesante se usa en el ejemplo: el salto automático de página. Tan
  75. pronto como una celda cruza el límite máximo de la página (a 2 cm del final, por defecto),
  76. se ejecuta un salto y se recupera la fuente. Aunque la cabecera y el pie usan su propia fuente
  77. (Arial), el cuerpo del documento continua con Times. Este mecanismo automático de recuperación
  78. también se aplica a los colores y al ancho de línea. El límite que fuerza los saltos de página
  79. puede establecerse con <a href='../doc/setautopagebreak.htm'>SetAutoPageBreak()</a>.
  80. </body>
  81. </html>