tuto2.htm 5.67 KB
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cabecera, pie, salto de pgina e imagen</title>
<link type="text/css" rel="stylesheet" href="../fpdf.css">
</head>
<body>
<h1>Cabecera, pie, salto de pgina e imagen</h1>
Aqu tenemos un ejemplo de dos pginas con cabacera, pie de pgina y logotipo:
<div class="source">
<pre><code>&lt;?php
<span class="kw">require(</span><span class="str">'fpdf.php'</span><span class="kw">);

class </span>PDF <span class="kw">extends </span>FPDF
<span class="kw">{
</span><span class="cmt">// Cabecera de pgina
</span><span class="kw">function </span>Header<span class="kw">()
{
    </span><span class="cmt">// Logo
    </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">);
    </span><span class="cmt">// Arial bold 15
    </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">);
    </span><span class="cmt">// Movernos a la derecha
    </span>$<span class="kw">this-&gt;</span>Cell<span class="kw">(</span>80<span class="kw">);
    </span><span class="cmt">// Ttulo
    </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">);
    </span><span class="cmt">// Salto de lnea
    </span>$<span class="kw">this-&gt;</span>Ln<span class="kw">(</span>20<span class="kw">);
}

</span><span class="cmt">// Pie de pgina
</span><span class="kw">function </span>Footer<span class="kw">()
{
    </span><span class="cmt">// Posicin: a 1,5 cm del final
    </span>$<span class="kw">this-&gt;</span>SetY<span class="kw">(-</span>15<span class="kw">);
    </span><span class="cmt">// Arial italic 8
    </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">);
    </span><span class="cmt">// Nmero de pgina
    </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">);
}
}

</span><span class="cmt">// Creacin del objeto de la clase heredada
</span>$pdf <span class="kw">= new </span>PDF<span class="kw">();
</span>$pdf<span class="kw">-&gt;</span>AliasNbPages<span class="kw">();
</span>$pdf<span class="kw">-&gt;</span>AddPage<span class="kw">();
</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">);
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">++)
    </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 lnea nmero '</span><span class="kw">.</span>$i<span class="kw">,</span>0<span class="kw">,</span>1<span class="kw">);
</span>$pdf<span class="kw">-&gt;</span>Output<span class="kw">();
</span>?&gt;</code></pre>
</div>
<p class='demo'><a href='tuto2.php' target='_blank' class='demo'>[Demo]</a></p>
Este ejemplo hace uso de los mtodos <a href='../doc/header.htm'>Header()</a> y <a href='../doc/footer.htm'>Footer()</a> para procesar las
cabeceras y pies de pginas. Se llaman automticamente. Ya existen en la clase FPDF
origuinal, pero no hacen nada. Por ello, tenemos que heredar la clase y sobreescribirlos.
<br>
<br>
El logotipo se imprime con el mtodo <a href='../doc/image.htm'>Image()</a> especificando su esquina superior
izquierda y su anchura. La altura se calcula automticamente respetando las proporciones
de la imagen.
<br>
<br>
Para imprimir el nmero de pgina, se le pasa un valor nulo (null) como ancho de la celda. Eso
significa que la celda se extender hasta el margen derecho de la pgina; puede ser til centrar
el texto. El nmero actual de la pgina se devuelve por el mtodos <a href='../doc/pageno.htm'>PageNo()</a>;
mientras que el nmero total de pginas se obtiene mediante un valor especial de
<code>{nb}</code> que ser sustituido cuando se cierre el documento (suponiendo que
usted antes utilizara <a href='../doc/aliasnbpages.htm'>AliasNbPages()</a>).
<br>
Observe el uso del mtodo <a href='../doc/sety.htm'>SetY()</a> que le permite especificar la posicin en una
ubicacin absoluta respecto del origen de coordenadas de la pgina, empezando por
el principio o por el final.
<br>
<br>
Otra caracterstica interesante se usa en el ejemplo: el salto automtico de pgina. Tan
pronto como una celda cruza el lmite mximo de la pgina (a 2 cm del final, por defecto),
se ejecuta un salto y se recupera la fuente. Aunque la cabecera y el pie usan su propia fuente
(Arial), el cuerpo del documento continua con Times. Este mecanismo automtico de recuperacin
tambin se aplica a los colores y al ancho de lnea. El lmite que fuerza los saltos de pgina
puede establecerse con <a href='../doc/setautopagebreak.htm'>SetAutoPageBreak()</a>.
</body>
</html>