dominios y alojamiento web en hostalia

Funciones en FPDF

25 de febrero de 2010
Valoración del artículo:
Vemos algunas de las funciones más importantes que nos podemos encontrar en FPDF.
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
En el primer articulo sobre FPDF colocábamos un ejemplo muy sencillo de cómo crear un archivo pdf a partir de PHP. Bien pues ahora vamos a ir viendo una a una las funciones que aparecían en dicho ejemplo.

<?php
require('fpdf.php');

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'¡Hola, Mundo!');
$pdf->Output();
?>

FPDF()

Vamos a empezar con la clase constructor FPDF() que nos permite crear el documento pdf y darle un formato. Tenemos que tener en cuenta que los parámetros que le pasemos se usarán en todos los métodos. Su sintaxis es la siguiente:

FPDF([string orientación [, string unidad [, mixed formato]]);

  • orientación es la forma de colocación de la página, es decir, debemos indicar si es normal o apaisada. El valor por defecto “P” es normal. El valor para apaisada es “L”
  • unidad es la medida de usuario y sus posibles valores son: “pt” punto, “mm” milímetro, “cm” centímetro e “in” pulgada. El valor por defecto es el “mm”
  • formato de la página. Puede tener los siguientes valores: A3, A4, A5, Letter y Legal. El valor por defecto es A4

Un ejemplo sería el siguiente:

$pdf=new FPDF('L','pt','Legal');

AddPage()

Esta función nos añade una página nueva al documento pdf. Como parámetros tan solo tiene la orientación y el formato, el resto de características las coge por defecto del constructor.

Su sintaxis es la siguiente:

$pdf->AddPage([string orientacion[,mixed formato]]);

Los parámetros orientación y formato son iguales que en FPDF(). Si no le pasas parámetros cogerá automáticamente los del constructor.

SetFont

Es la función que nos permite establecer el formato de la fuente utilizada en el archivo pdf. Es obligatorio llamar a esta función al inicio de la creación del archivo ya que sino el documento no sería valido.

Si queremos añadir un tipo de fuente que no está en el standar debemos utilizar la función AddFont(); que veremos más adelante.

La sintaxis de SetFont es la siguiente:

SetFont(string familia[, string estilo [, float size]]);

  • familia: familia de fuente que pueden ser las standars(Courier,Helvetica o Arial, Times, Symbol,ZapfDingbats) o añadir una mediante AddFont();
  • estilo: estilo de la fuente que puede ser regular ” ”, negrita “B”, italica “I” y subindice “U”.
  • size: tamaño de la fuente en puntos. Su valor por defecto es 12.

Un ejemplo seria el siguiente:

SetFont('Helvetica','I',13);

Cell

Esta función nos imprime una celda donde vamos a imprimir nuestro texto. Tiene bordes opcionales y color de fondo. En esta celda podemos colocar el texto alineado o centrado.

Su sintaxis es la siguiente:

Cell(float w [, float h [, string texto [, mixed borde [, int ln [, string align [, boolean fill [, mixed link]]]]]]])

  • w: ancho de la celda. Si ponemos 0 la celda se extiende hasta el margen derecho.
  • H: alto de la celda.
  • Texto: el texto que le vamos a añadir.
  • Borde: nos dice si van a ser visibles o no. si es 0 no serán visibles, si es 1 se verán los bordes.
  • Ln: nos dice donde se empezara a escribir después de llamar a esta función. Siendo 0 a la derecha, 1 al comienzo de la siguiente línea, 2 debajo.
  • Align: para alinear el texto. “L” alineado a la izquierda, “C” centrado y “R” alineado a la derecha.
  • Fill: nos dice si el fondo de la celda va a ir con color o no. los valores son True o False

Un ejemplo sería el siguiente:

$pdf->Cell(10,10,'Estamos viendo',1,1,'C');

Output()

Nos envía el documento al navegador, a un fichero local o a una cadena. Podemos abrirlo en un cuadro de diálogo o prepararlo para una descarga.

Su sintaxis es la siguiente:

string Output([string nombre, string destino])

  • nombre: damos nombre al fichero, si no se indica lo llama por defecto doc.pdf
  • destino: destino de envío en el documento. “I” envía el fichero al navegador con la opción de guardar como..., “D” envía el documento al navegador preparado para la descarga, “F” guarda el fichero en un archivo local, “S” devuelve el documento como una cadena.

Un ejemplo seria el siguiente:

$fpdf->Output('prueba','I');

Compartir en redes sociales

Comentarios
Fueron enviados 4 comentarios al artículo
3 comentarios no revisados
1 comentario revisado:

jacc902...
Tratando de usar tcpdf
23/3/2011
Hola,

Estoy probando el TCPDF ya que trabajaba con el fpdf, pero lei que el primero tienes mejoras sustanciales y ahora dicen aqui que esta obsoleto.

El tema es que realizo la siguiente consulta:

$result11=mysql_query("select * from tabla1 where codper='$codigo' order by fdocarr",$con);
$valida_filas_11=mysql_num_rows($result11);

y la muestro con:

if ($valida_filas_11!=0)
{
?>
<tr>
<td colspan="6">&nbsp;</td>
</tr>
<tr>
<td align="center"><strong>Nº</strong></td>
<td align="center"><strong>Nº DOC</strong></td>
<td align="center" width="100"><strong>FECHA</strong></td>
<td align="center"><strong>CAUSA</strong></td>
<td align="center"><strong>TIEMPO (Horas)</strong></td>
<td align="center"><strong>AUTORIDAD</strong></td>
</tr>

<?php
$contador=1;
while ($row11=mysql_fetch_array($result11))
{
?>
<tr>
<td><?php echo $contador;?></td>
<td><?php echo $row11["ndocarr"];?></td>
<td><?php echo $row11["fdocarr"];?></td>
<td><?php echo $row11["causarr"];?></td>
<td align="center"><?php echo $row11["tiemarr"];?></td>
<td><?php echo $row11["impoarr"];?></td>
</tr>
<?php
$contador++;
}
}
else
{
?>
<tr>
<td><h1>NO REGISTRA</h1></td>
</tr>
<?php
}

Con esto trato de pasarlo a pdf:

$pdf->SetFont('dejavusans', '', 10, '', true);
if ($valida_filas_11==0)
{
$pdf->SetFont('dejavusans', 'B', 14, '', true);
$pdf->Cell(0,0,'NO REGISTRA',0,1,'C');
}
else
{
$pdf->SetFont('dejavusans', 'B', 12, '', true);
$pdf->MultiCell(5,5,'No.',0,'C',0,0);
$pdf->MultiCell(10,5,'No. DOC',0,'C',0,0);
$pdf->MultiCell(10,5,'FECHA',0,'C',0,0);
$pdf->MultiCell(55,5,'CAUSA',0,'C',0,0);
$pdf->MultiCell(5,5,'TIEMPO',0,'C',0,0);
$pdf->MultiCell(20,5,'AUTORIDAD',0,'C',0,0);

$contador=1;
while ($row11=mysql_fetch_array($result11))
{
$pdf->MultiCell(5,5,$contador,0,'C',0,0);
$pdf->MultiCell(10,5,$row11["ndocarr"],0,'C',0,0);
$pdf->MultiCell(10,5,$row11["fdocarr"],0,'C',0,0);
$pdf->MultiCell(55,5,$row11["causarr"],0,'J',0,0);
$pdf->MultiCell(5,5,$row11["tiemarr"],0,'C',0,0);
$pdf->MultiCell(20,5,$row11["impoarr"],0,'J',0,1);
$contador++;
}

pero no me muestra nada. Verificando el servidor me da el siguiente error:

Maximum execution time of 30 seconds exceeded in /var/www/tcpdf/tcpdf.php.....

Ya cambié el valor en el php.ini de 30 a 120 pero igual.

Creo q por ahi estoy haciendo una creación de celdas indiefinido, por mi poco conocimiento de la sintaxis del MultiCell.

Alguna idea para ayudarme

Saludos

Manuales relacionados
Categorias relacionadas
El autor
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...