Est-il un moyen de remplir des formulaires PDF et ensuite l'enregistrer (aplatir) à des fichiers PDF à partir de l'intérieur de PHP? La bibliothèque recommanderiez-vous?
Réponses
Trop de publicités?Les bibliothèques et les cadres mentionnés ici sont bonnes, mais si tout ce que vous voulez faire est de remplir un formulaire et de les aplatir, je vous conseille de l'outil de ligne de commande appelé pdftk (PDF Toolkit).
Voir http://www.accesspdf.com/pdftk/
Vous pouvez appeler la ligne de commande de php, et la commande est
pdftk
formfile.pdf fill_form
fieldinfo.dff output
outputfile.pdf flatten
Vous aurez besoin de trouver le format d'un fichier FDF, afin de générer de l'info pour remplir les champs. Voici un bon lien pour que:
http://www.tgreer.com/fdfServe.html
[Edit: Le lien ci-dessus semble être hors de la commission. Voici quelques infos...]
Le pdftk commande peut générer un fichier FDF à partir d'un formulaire PDF fichier. Vous pouvez ensuite utiliser le générés fichier FDF d'un échantillon. 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) >>
...
Un gros +1 pour la accepté de répondre, et un petit conseil si vous rencontrez des problèmes d'encodage avec le fichier fdf. Si vous générez le champs.dff et lors de l'exécution
file -bi fields.fdf
vous obtenez
application/octet-stream; charset=binary
alors vous avez probablement courir dans un caractère UTF-16 sujet. Essayez la conversion de la ftf par le biais de
cat fields.fdf | sed -e's/\x00//g' | sed -e's/\xFE\xFF//g' > better.fdf
J'étais alors en mesure de modifier et importer le mieux.fichier fdf dans mon formulaire PDF.
J'espère que cela sauve quelqu'un un Google-ing
Pour:
- Plus facile d'entrée format XFDF
- Vrai UTF-8 (en russe) de soutien
- Php complet exemple d'utilisation
N'hésitez pas à consulter mon PdfFormFillerUTF-8.
J'ai eu beaucoup de succès avec l'aide d'un formulaire qui envoie un script php qui utilise fpdf et passe dans les champs de formulaire que d'obtenir des variables (peut-être pas un best-pratique, mais ça marche).
<?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>
Ce squelette exemple devrait aider ya obtenir commencé.