Bien, pues en este articulo del manual sobre FPDF vamos a ver varias funciones para introducir el texto de un archivo .txt, es decir, vamos a mostrar el contenido de dicho archivo en nuestro PDF.
Vamos a empezar esta práctica colocando un ejemplo, que luego iremos explicándolo paso a paso para que se pueda entender todo lo que hacemos .
<?
require('fpdf/fpdf.php');
class PDF extends FPDF
{
//Cabecera de página
function Header()
{
//Logo
$this->Image("leon.jpg" , 10 ,8, 35 , 38 , "JPG" );
//Arial bold 15
$this->SetFont('Arial','B',15);
//Movernos a la derecha
$this->Cell(80);
//Título
$this->Cell(60,10,'Titulo del archivo',1,0,'C');
//Salto de línea
$this->Ln(20);
}
//Pie de página
function Footer()
{
//Posición: a 1,5 cm del final
$this->SetY(-15);
//Arial italic 8
$this->SetFont('Arial','I',8);
//Número de página
$this->Cell(0,10,'Page '.$this->PageNo(),0,0,'C');
}
function TituloArchivo($num,$label)
{
$this->SetY(55);
//Arial 12
$this->SetFont('Arial','',12);
//Color de fondo
$this->SetFillColor(200,220,255);
//Título
$this->Cell(0,6,"Archivo $num : $label",0,1,'L',true);
//Salto de línea
$this->Ln(4);
}
function CuerpoArchivo($file)
{
//Leemos el fichero
$f=fopen($file,'r');
$txt=fread($f,filesize($file));
fclose($f);
//Times 12
$this->SetFont('Times','',12);
//Imprimimos el texto justificado
$this->MultiCell(0,5,$txt);
//Salto de línea
$this->Ln();
}
function ImprimirArchivo($num,$title,$file)
{
$this->AddPage();
$this->TituloArchivo($num,$title);
$this->CuerpoArchivo($file);
}
}
$pdf=new PDF();
$title='Mostramos un archivo txt';
$pdf->SetTitle($title);
$pdf->SetY(65);
$pdf->ImprimirArchivo(1,'Archivo de prueba ','prueba1.txt');
$pdf->ImprimirArchivo(2,'Otro archivo','prueba2.txt');
$pdf->Output();
?>
Las primeras lineas no las vamos a explicar, ya que están detenidamente analizadas en los artículos anteriores de este manual. Así que pasamos directamente a la función TituloArchivo(), que nos permite especificar el diseño de los títulos de los archivos que vamos a mostrar. Le estamos dando un tipo de letra Arial con un tamaño 12, un color de fondo azul utilizando la función SetFillColor y colocando el titulo con su correspondiente formato, utilizando la función Cell.
A continuación creamos la función CuerpoArchivo() que es la que va a leer el archivo y imprimirlo en nuestro PDF.
Le pasamos como parámetro la ruta del archivo. Con fopen abrimos el archivo en modo lectura, después lo leemos con fread() y guardamos en una variable, cerramos el archivo y damos formato al texto que vamos a mostrar en nuestro PDF.
Para finalizar creamos la función ImprimirArchivo() que engloba las dos anteriores y nos hace más sencillo nuestro código.
Ya lo único que nos queda es lo de siempre, abrir nuestro archivo pdf, ponerle titulo y utilizar la función de ImprimirArchivo() las veces que queramos. Por ultimo cerrar el archivo y listo.
A continuación vamos a mostrar las dos funciones nuevas que hemos utilizado para la realización de este código:
SetFillColor(int r [, int g, int b]);
siendo:
r: si g y b los ponemos, nos muestra el rojo sino la escala de gris
g: el verde
b: azul
MultiCell(float w, float h, string txt [, mixed border [, string align [, boolean fill]]])
Siendo: