47 votes

Remplissage de Formulaires PDF avec PHP

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?

47voto

bmb Points 2995

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) >>
...

5voto

Val Redchenko Points 333

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

3voto

Nikolay Points 21

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.

3voto

Joshua Chavanne Points 101

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é.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X