Pregunta

¿Existen bibliotecas PHP que puedan usarse para completar formularios PDF y luego guardarlos (aplanarlos) en archivos PDF?

¿Fue útil?

Solución

Las bibliotecas y marcos mencionados aquí son buenos, pero si todo lo que quiere 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 formularioarchivo.pdf fill_form información de campo.fdf output archivo de salida.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 anterior 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 utilizar el archivo FDF generado como muestra.Los campos del 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 puedes consultar php-pdftk, que es una biblioteca específica de PHP.No lo he usado, pero el comentarista Álvaro (abajo) lo recomienda.

Otros consejos

Un gran +1 a la respuesta aceptada y un pequeño consejo si tiene problemas de codificación con el archivo fdf.Si generas el field.fdf y al ejecutar

file -bi fields.fdf

usted obtiene

application/octet-stream; charset=binary

entonces lo más probable es que te hayas topado con un problema con el conjunto de caracteres UTF-16.Intente 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 a mi formulario PDF.

Con suerte, esto le ahorrará a alguien algo de Google.

He tenido mucho éxito usando un formulario que se envía a un script php que usa fpdf y pasa los campos del formulario como variables de obtención (tal vez no sea una buena práctica recomendada, 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 ayudarte a empezar.

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

luego complételo en un pdf con pdftk (ver arriba)

Para:

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

No dudes en consultar mi PdfFormFillerUTF-8.

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

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

Escribí una biblioteca Perl, CAM::PDF, con un interfaz de línea de comandos que puede solucionar esto.Intenté usar una solución FDF hace años, pero la encontré demasiado complicada y 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 sencillo de usar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top