Existe-t-il des bibliothèques PHP qui peuvent être utilisées pour remplir des formulaires PDF, puis les enregistrer (aplatir) dans des fichiers PDF PDF)?
Les bibliothèques et les frameworks mentionnés ici sont bons, mais si tout ce que vous voulez faire est de remplir un formulaire et de l'aplatir, je recommande l'outil de ligne de commande appelé pdftk (PDF Toolkit).
Voir https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/
Vous pouvez appeler la ligne de commande à partir de php, et la commande est
pdftk
formfile.pdf fill_form
fieldinfo.fdf output
outputfile.pdf flatten
Vous devrez trouver le format d'un fichier FDF afin de générer les informations à remplir dans les champs. Voici un bon lien pour cela:
http://www.tgreer.com/fdfServe.html
[Modifier: Le lien ci-dessus semble être hors service. Voici quelques informations supplémentaires ...]
La commande pdftk peut générer un fichier FDF à partir d'un fichier de formulaire PDF. Vous pouvez ensuite utiliser le fichier FDF généré comme exemple. Les champs du formulaire sont la partie du fichier FDF qui ressemble à
...
<< /T(f1-1) /V(text of field) >>
<< /T(f1-2) /V(text of another field) >>
...
Vous pouvez également consulter php-pdftk , qui est une bibliothèque spécifique à PHP. Je ne l'ai pas utilisé, mais le commentateur Álvaro (ci-dessous) le recommande.
Un gros +1 à la réponse acceptée, et un petit conseil si vous rencontrez des problèmes d'encodage avec le fichier fdf. Si vous générez le fields.fdf et lors de l'exécution
file -bi fields.fdf
vous obtenez
application/octet-stream; charset=binary
alors vous avez probablement rencontré un problème de jeu de caractères UTF-16. Essayez de convertir le ftf au moyen de
cat fields.fdf | sed -e's/\x00//g' | sed -e's/\xFE\xFF//g' > better.fdf
J'ai ensuite pu éditer et importer le fichier better.fdf dans mon formulaire PDF.
Espérons que cela sauve quelqu'un de Google
générer un fichier fdf avec php: voir http://www.php.net/manual/en/book.fdf.php
puis remplissez-le dans un pdf avec pdftk (voir ci-dessus)
Pour:
N'hésitez pas à vérifier mon PdfFormFillerUTF-8 .
J'ai eu beaucoup de succès avec l'utilisation d'un formulaire qui se soumet à un script php qui utilise fpdf et passe dans les champs du formulaire en tant que variables get (peut-être pas une excellente pratique, mais cela fonctionne).
<?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();
?>
et vous pourriez avoir quelque chose comme ça.
<form action="fooPDF.php" method="post">
<p>PDF CONTENT: <textarea name="content" ></textarea></p>
<p><input type="submit" /></p>
</form>
Cet exemple squelettique devrait vous aider à démarrer.
J'ai écrit une bibliothèque Perl, CAM :: PDF , avec une interface de ligne de commande qui peut résoudre ce problème. J'ai essayé d'utiliser une solution FDF il y a des années, mais je l'ai trouvée beaucoup trop compliquée, c'est pourquoi j'ai écrit CAM :: PDF en premier lieu. Ma bibliothèque utilise quelques heuristiques pour remplacer le formulaire par le texte souhaité, donc ce n'est pas parfait. Mais cela fonctionne la plupart du temps, et il est rapide, gratuit et assez simple à utiliser.
On dirait que cela a été couvert avant . Cliquez sur le code correspondant à l'aide de Zend Framework PDF bibliothèque.
Nous utilisons PDFLib au travail. La version payante n'est pas très chère, et il existe une édition open source plus limitée, si vous ne parvenez pas à décortiquer la version payante.