# FAQ

- 1. �Cu�l es exactamente el tipo de licencia de FPDF? �Existen restricciones de uso?
- 2. Encuentro el siguiente error cuando intento generar un PDF: Some data has already been output, can't send PDF file
- 3. Caracteres acentuados son reemplazados por algunos caracteres extra�os como é.
- 4. Intento incluir el s�mbolo del euro, pero no funciona.
- 5. Intento mostrar una variable en el m�todo Header pero no se imprime nada.
- 6. He definido los m�todos Header y Footer en mi clase PDF, pero no se muestra nada.
- 7. No consigo que los saltos de l�nea funcionen. Pongo \n en la cadena para MultiCell, pero no funciona.
- 8. Uso jQuery para generar el archivo PDF pero �ste no se muestra.
- 9. Dibujo un marco con dimensiones muy precisas pero, cuando lo imprimo, noto algunas diferencias.
- 10. Me gustar�a usar toda la superficie de la p�gina, pero cuando imprimo siempre aparecen m�rgenes. �C�mo puedo deshacerme de ellos?
- 11. �C�mo puedo poner un fondo en mi PDF?
- 12. �C�mo puedo establecer una cabecera o pie de p�gina en la primera p�gina?
- 13. Me gustar�a utilizar extensiones previstas por diferentes scripts. �C�mo puedo combinarlos?
- 14. �C�mo abrir el archivo PDF en otra pesta�a?
- 15. �C�mo puedo enviar el PDF por correo electr�nico?
- 16. �Cu�l es el l�mite de tama�o de los ficheros que puedo generar con FPDF?
- 17. �Puedo modificar un PDF con FPDF?
- 18. Me gustar�a hacer un motor de b�squeda en PHP e indexar ficheros PDF. �Puedo hacerlo con FPDF?
- 19. �Puedo convertir una p�gina HTML en PDF con FPDF?
- 20. �Puedo concatenar ficheros PDF con FPDF?

- 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. 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.
  Si usted no puede averiguar de donde proviene el problema, este otro mensaje que aparece justo abajo puede ayudarlo:
  Warning: Cannot modify header information - headers already sent by (output started at script.php:X)
  Esto significa que script.php env�a algo en la l�nea X. Vaya a esta l�nea y arr�glelo. En caso de que el mensaje no aparece, en primer lugar compruebe que usted no haya desactivado las advertencias, a continuaci�n, agregue esto al comienzo de su script:

      ob_end_clean();

- 3. 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);

  Sin embargo, algunos caracteres, tales como Euro no ser�n traducidos correctamente. Si la extensi�n iconv est� disponible, la forma correcta de hacerlo es la siguiente:

      $str = iconv('UTF-8', 'windows-1252', $str);

- 4. 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));

- 5. Intento mostrar una variable en el m�todo Header pero no se imprime nada.

  Tienes que utilizar la palabra clave `global` 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';

  Alternativamente, puede utilizar una propiedad del objeto:

      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. 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.

- 8. Uso jQuery para generar el archivo PDF pero �ste no se muestra.

  No uses a AJAX request para obtener el PDF.

- 9. 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.

- 10. 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.

- 11. �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().

- 12. �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
              ...
          }
      }

- 13. 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
      {
      ...
      }

  y "B" en b.php:

      require('fpdf.php');

      class B extends FPDF
      {
      ...
      }

  a continuaci�n, hacer B extends A:

      require('a.php');

      class B extends A
      {
      ...
      }

  y haga su propia clase extendida de B:

      require('b.php');

      class PDF extends B
      {
      ...
      }

      $pdf = new PDF();

- 14. �C�mo abrir el archivo PDF en otra pesta�a?

  Sigue el mismo m�todo que utilizar�as para una p�gina HTML o algo similar. A�ade: target=�_blank� a tu link o form.

- 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:
  - El m�ximo de memoria reservada para los scripts en PHP es, por defecto, de 128 MB. Para documentos muy extensos, especialmente si contienen im�genes, este l�mite puede alcanzarse (ya que el fichero se construye en memoria). El l�mite se define en el fichero php.ini.
  - El tiempo m�ximo de ejecuci�n es por defecto de 30 segundos. Este l�mite puede ser f�cilmente sobrepasado. Se define en php.ini y puede ser modificado din�micamente mediante set_time_limit().

- 17. �Puedo modificar un PDF con FPDF?

  Es posible importar p�ginas de un documento PDF existente gracias a la extensi�n FPDI. Entonces, puede a�adirles contenido.

- 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: pdftk y mbtPdfAsm.