web-development-kb-es.site

Relleno PDF Formularios con PHP

¿Hay PHP bibliotecas que se pueden usar para llenar PDF formularios y luego guardarlos (aplanarlos) en PDF archivos?

47
mno

Las bibliotecas y los marcos mencionados aquí son buenos, pero si todo lo que desea hacer es completar un formulario y aplanarlo, le recomiendo la herramienta de línea de comandos llamada pdftk (PDF Toolkit).

Ver https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

Puede llamar a la línea de comando desde php, y el comando es

pdftk formfile.pdf fill_form fieldinfo.fdf output outputfile.pdf flatten

Necesitará encontrar el formato de un archivo FDF para generar la información para completar los campos. Aquí hay un buen enlace para eso:

http://www.tgreer.com/fdfServe.html

[Editar: El enlace de arriba parece estar fuera de servicio. Aquí hay más información ...]

El comando pdftk puede generar un archivo FDF a partir de un archivo de formulario PDF. Luego puede usar el archivo FDF generado como muestra. Los campos de formulario son la parte del archivo FDF que se parece

...
<< /T(f1-1) /V(text of field) >>
<< /T(f1-2) /V(text of another field) >>
...

También puede consultar php-pdftk , que es una biblioteca específica de PHP. No lo he usado, pero el comentarista Álvaro (abajo) lo recomienda.

47
bmb

Un gran +1 a la respuesta aceptada, y un pequeño consejo si te encuentras con problemas de codificación con el archivo fdf. Si genera los campos.fdf y al ejecutar

file -bi fields.fdf

usted obtiene

application/octet-stream; charset=binary

entonces lo más probable es que te encuentres con un problema de juego de caracteres UTF-16. Intenta convertir el ftf mediante

cat fields.fdf | sed -e's/\x00//g' | sed -e's/\xFE\xFF//g' > better.fdf

Luego pude editar e importar el archivo better.fdf en mi formulario PDF.

Esperemos que esto le ahorre a alguien algo de Google

5
Val Redchenko

generar archivo fdf con php: ver http://www.php.net/manual/en/book.fdf.php

luego llénelo en un pdf con pdftk (ver arriba)

3
proofy

Por:

  • Formato de entrada más fácil que XFDF
  • Verdadero soporte UTF-8 (ruso)
  • Ejemplo completo de uso de php

Siéntase libre de revisar mi PdfFormFillerUTF-8 .

3
Nikolay

He tenido mucho éxito con el uso de un formulario que se envía a un script php que usa fpdf y pasa en los campos del formulario como variables de obtención (tal vez no sea una buena práctica, pero funciona).

 <?php
require('fpdf.php');
$pdf=new PDF();
$pdf->AddPage();
$pdf->SetY(30);
$pdf->SetX(100);
$pdf->MultiCell(10,4,$_POST['content'],0,'J');
$pdf->Output();
?>

y podrías tener algo como esto.

  <form action="fooPDF.php" method="post">
     <p>PDF CONTENT: <textarea name="content" ></textarea></p>
     <p><input type="submit" /></p>
    </form>

Este ejemplo esquelético debería ayudarlo a comenzar.

3
josh.chavanne

Escribí una biblioteca Perl, CAM :: PDF , con un interfaz de línea de comandos que puede resolver esto. Intenté usar una solución FDF hace años, pero me pareció demasiado complicado, por eso escribí CAM :: PDF en primer lugar. Mi biblioteca utiliza algunas heurísticas para reemplazar el formulario con el texto deseado, por lo que no es perfecto. Pero funciona la mayor parte del tiempo, y es rápido, gratuito y bastante fácil de usar.

1
Chris Dolan

Parece que esto ha sido cubierto antes . Haga clic para obtener el código relevante utilizando Zend Framework PDF biblioteca.

1
pix0r

Usamos PDFLib en el trabajo. La versión paga no es muy costosa, y hay una edición de código abierto más limitada, si no puede pagar la versión paga.

1
foxxtrot