1. �Cu�l es exactamente el tipo de licencia de FPDF? �Existen restricciones de uso?
FPDF es liberado bajo una licencia permisiva: no hay restricci�n de uso. Usted puede integrarlo libremente en su aplicaci�n (comercial o no), con o sin modificaciones.2. Cuando intento crear un PDF, aparecen un mont�n de caracteres raros. �Por qu�?
Esos caracteres "raros" constituyen de hecho el contenido del PDF. Este comportamiento es un fallo de IE6. Cuando recibe una p�gina en HTML y despu�s un PDF de la misma URL, lo muestra directamente sin lanzar Acrobat. Esto ocurre con frecuencia durante la fase de desarrollo: al menor fallo en el script, se env�a una p�gina HTML y, despu�s de corregirlo, se env�a el PDF.3. Intento generar un PDF y IE muestra una p�gina en blanco. �Qu� pasa?
Antes de nada, compruebe que no env�a nada al navegador despu�s del PDF (ni siquiera un espacio o un salto de l�nea). Puede incluir una instrucci�n exist justo despu�s de llamar al m�todo Output() para asegurarse. Si esto no funciona, significa que es usted v�ctima del "s�ndrome de la p�gina en blanco". IE usado con la extensi�n de Acrobat tiene numerosos fallos. Para evitar todos estos problemas de manera fiable, existen dos t�cnicas fundamentalmente://Determinar un nombre temporal de fichero en el directorio actual
$file = basename(tempnam('.', 'tmp'));
rename($file, $file.'.pdf');
$file .= '.pdf';
//Guardar el PDF en un fichero
$pdf->Output($file, 'F');
//Redirecci�n
header('Location: '.$file);
function CleanFiles($dir)
{
//Borrar los ficheros temporales
$t = time();
$h = opendir($dir);
while($file=readdir($h))
{
if(substr($file,0,3)=='tmp' && substr($file,-4)=='.pdf')
{
$path = $dir.'/'.$file;
if($t-filemtime($path)>3600)
@unlink($path);
}
}
closedir($h);
}
4. No consigo que los saltos de l�nea funcionen. Pongo \n en la cadena para MultiCell, pero no funciona.
Debe usted utilizar comillas dobles ("), no simples ('), para la cadena.5. Intento mostrar una variable en el m�todo Header pero no se imprime nada.
Tienes que utilizar la palabra claveglobal
para acceder a las variables globales, por ejemplo:
function Header()
{
global $title;
$this->SetFont('Arial', 'B', 15);
$this->Cell(0, 10, $title, 1, 1, 'C');
}
$title = 'Mi T�tulo';
function Header()
{
$this->SetFont('Arial', 'B', 15);
$this->Cell(0, 10, $this->title, 1, 1, 'C');
}
$pdf->title = 'Mi T�tulo';
6. He definido los m�todos Header y Footer en mi clase PDF, pero no se muestra nada.
Tiene que crear un objeto de la clase PDF, no de la FPDF:$pdf = new PDF();
7. Caracteres acentuados son reemplazados por algunos caracteres extra�os como é.
No utilice codificaci�n UTF-8. La codificaci�n est�ndar de fuentes en FPDF es ISO-8859-1 o windows-1252. Es posible realizar una conversi�n a la norma ISO-8859-1 con utf8_decode():$str = utf8_decode($str);
$str = iconv('UTF-8', 'windows-1252', $str);
8. Intento incluir el s�mbolo del euro, pero no funciona.
Las fuentes est�ndares tiene el car�cter euro en la posici�n 128. Puede definir una constante como esta para su comodidad:define('EURO', chr(128));
9. Encuentro el siguiente error cuando intento generar un PDF: Some data has already been output, can't send PDF file
Usted no debe enviar nada al navegador, excepto el propio PDF: ning�n HTML, espacio o retorno de carro. Un caso com�n es tener una l�nea o espacio en blanco extra al final del script incluido.ob_end_clean();
10. Dibujo un marco con dimensiones muy precisas pero, cuando lo imprimo, noto algunas diferencias.
Respecto a las dimensiones, seleccione "Ninguno" para el ajuste de escala de p�gina en lugar de "Reducir al �rea de impresi�n" en el cuadro de di�logo Imprimir.11. Me gustar�a usar toda la superficie de la p�gina, pero cuando imprimo siempre aparecen m�rgenes. �C�mo puedo deshacerme de ellos?
Todas las impresoras tienen m�rgenes f�sicos (dependiendo del modelo). Por tanto, es imposible quitarlos e imprimir en la totalidad del papel.12. �C�mo puedo poner un fondo en mi PDF?
Para una imagen, invoque Image() en el m�todo Header(), antes que cualquier otra salida. Para configurar un color de fondo, use Rect().13. �C�mo puedo establecer una cabecera o pie de p�gina en la primera p�gina?
Simplemente verifique el n�mero de la p�gina:function Header()
{
if($this->PageNo()==1)
{
//Primera P�gina
...
}
else
{
//Otras P�ginas
...
}
}
14. Me gustar�a utilizar extensiones previstas por diferentes scripts. �C�mo puedo combinarlos?
Utilice herencia encadenada. Si dispone de dos clases, por ejemplo, n�mbrelo "A" en a.php:require('fpdf.php');
class A extends FPDF
{
...
}
require('fpdf.php');
class B extends FPDF
{
...
}
require('a.php');
class B extends A
{
...
}
require('b.php');
class PDF extends B
{
...
}
$pdf = new PDF();
15. �C�mo puedo enviar el PDF por correo electr�nico?
Como cualquier otro archivo, pero una forma f�cil es usar PHPMailer y esta es una forma de adjuntarlo: archivo desde la memoria:$mail = new PHPMailer();
...
$doc = $pdf->Output('', 'S');
$mail->AddStringAttachment($doc, 'doc.pdf', 'base64', 'application/pdf');
$mail->Send();
16. �Cu�l es el l�mite de tama�o de los ficheros que puedo generar con FPDF?
No hay ning�n l�mte en particular. Sin embargo, hay ciertas limitaciones:17. �Puedo modificar un PDF con FPDF?
Es posible importar p�ginas de un documento PDF existente gracias a la extensi�n FPDI:18. Me gustar�a hacer un motor de b�squeda en PHP e indexar ficheros PDF. �Puedo hacerlo con FPDF?
No. Pero existe una utilidad GPL escrita en C, pdftotext, que es capaz de extraer el texto de un PDF. Viene con el paquete Xpdf:19. �Puedo convertir una p�gina HTML en PDF con FPDF?
No. Pero existe una utilidad GPL escrita en C, htmldoc, que le permite hacerlo y da buen resultado:20. �Puedo concatenar ficheros PDF con FPDF?
No directamente, pero es posible usar FPDI para llevar a cabo esta tarea. Tambi�n existen algunas herramientas libres de l�nea de comandos: