guardarlo - Rellenar formularios PDF con PHP
rellenar campos automaticamente php ajax (8)
¿Hay bibliotecas PHP que se puedan usar para rellenar formularios PDF y luego guardarlos (aplanarlos) en archivos PDF?
Escribí una biblioteca de Perl, CAM::PDF , con una 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.
He tenido mucho éxito con el uso de un formulario que se envía a un script php que utiliza fpdf y pasa en los campos de formulario como variables de obtención (quizás 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 el podría 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 esqueleto debería ayudarlo a comenzar.
Las bibliotecas y los marcos mencionados aquí son buenos, pero si todo lo que quiere hacer es completar un formulario y aplanarlo, 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 desde 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 a
...
<< /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.
Parece que esto ha sido cubierto antes . Haga clic para obtener el código correspondiente utilizando la biblioteca Zend Framework PDF.
Por:
- Formato de entrada más fácil que XFDF
- Soporte verdadero UTF-8 (ruso)
- Ejemplo completo de uso de php
No dude en consultar mi PdfFormFillerUTF-8 .
Un gran +1 a la respuesta aceptada, y un pequeño consejo si se encuentra con problemas de codificación con el archivo fdf. Si genera fields.fdf y luego de ejecutar
file -bi fields.fdf
usted obtiene
application/octet-stream; charset=binary
entonces es muy probable que se encuentre con un problema de conjunto de caracteres UTF-16. Intente convertir el ftf por medio de
cat fields.fdf | sed -e''s//x00//g'' | sed -e''s//xFE/xFF//g'' > better.fdf
Pude editar e importar el archivo better.fdf en mi formulario PDF.
Con suerte, esto le ahorra a alguien algo de Google-ing
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 puede pagar la versión paga.
generando archivo fdf con php: vea http://www.php.net/manual/en/book.fdf.php
luego complételo en un pdf con pdftk (vea arriba)