Comment afficher les noms de champs de formulaire dans un document PDF

25

J'ai un document pdf avec de nombreux champs de formulaire dessus. J'ai besoin de voir les noms des champs du formulaire. Puis-je le faire avec Adobe Reader? Peut-être un outil tiers ..?

Billy Coover
la source

Réponses:

3

Il est probable que vous trouverez une application conviviale pour le faire pour vous, mais c'est ainsi que je la réalise avec un peu de VBScript ...

  1. Téléchargez et installez ABCpdf à partir de webSupergoo, disponible ici ...

  2. Copiez le script suivant dans un fichier texte et enregistrez-le avec une extension de fichier «.vbs».

  3. Placez une copie de votre fichier PDF dans le même dossier que le script, en le nommant «myForm.pdf».

  4. Double-cliquez sur le fichier de script à exécuter.


Set theDoc = CreateObject("ABCpdf8.Doc")
theDoc.Read "myForm.pdf"
theDoc.AddFont "Helvetica-Bold"
theDoc.FontSize=16
theDoc.Rect.Pin=1

Dim theIDs, theList
theIDs = theDoc.GetInfo(theDoc.Root, "Field IDs")
theList = Split(theIDs, ",")

For Each id In theList
    theDoc.Page = theDoc.GetInfo(id, "Page")
    theDoc.Rect.String = theDoc.GetInfo(id, "Rect")
    theDoc.Color.String = "240 240 255"
    theDoc.FillRect()
    theDoc.Rect.Height = 16
    theDoc.Color.String = "220 0 0"
    theDoc.AddText(theDoc.GetInfo(id, "Name"))
    theDoc.Delete(id)
Next

theDoc.Save "output.pdf"
theDoc.Clear
MsgBox "Finished"

Une fois le script terminé, vous devriez trouver un autre document PDF nommé «output.pdf» qui apparaît dans le même dossier, avec tous les noms de champs superposés au-dessus des champs.

AffineMesh
la source
37

J'apprécie que cette question soit un peu ancienne, mais si quelqu'un d'autre la rencontre, le PDF Toolkit vous permettra de le faire très simplement avec une commande qui ressemble à ceci (où le PDF dont vous voulez que les champs du formulaire s'appellent docsOfInterest.pdf:

pdftk docOfInterest.pdf dump_data_fields
shearichard
la source
Si les champs sont trop nombreux, il vaut mieux l'extraire ailleurs en utilisant l'argument de sortie. par exemple en utilisant myDataFields comme fichier de sortie: pdftk docOfInterest.pdf dump_data_fields output myDataFields
Jaider
2

Autant que je sache, vous ne pouvez pas le faire avec Acrobat Reader. Vous pouvez utiliser leur programme d'écriture PDF (actuellement Acrobat XI) pour le faire, mais c'est assez cher.

J'ai dû faire la même chose pour quelques documents seulement. Je viens de télécharger la version d'essai de deskPDF Studio X . Dans le menu, aller à Formulaires> Modifier la mise en page du formulaire vous permet de voir le nom des champs.

Sachez que travailler avec leur version d'essai gratuite tamponnera les documents avec un filigrane si vous enregistrez le document.

Jemmeh
la source
1

Il y a un article technique sur Aspose.com qui explique comment identifier les noms de champs de formulaire pour les PDF. Selon cet article, vous pouvez y parvenir en utilisant le code Java sur la page.

//First a input pdf file should be assigne
Form form = new Form("FilledForm.pdf");
//get all field names
String[] allfields = form.getFieldsNames();
// Create an array which will hold the location coordinates of Form fields
Rectangle[] box = new Rectangle[allfields.Length];
for (int i = 0; i < allfields.Length; i++)
{
  // Get the appearance attributes of each field, consequtively
  FormFieldFacade facade = form.getFieldFacade(allfields[i]);
  //Box in FormFieldFacade class holds field's location.
  box[i] = facade.getBox();
}
form.save();

// Now we need to add a textfield just upon the original one
FormEditor editor = new FormEditor("FilledForm.pdf", ”form_updated.pdf");
for (int i = 0; i < allfields.Length; i++)
{
  // add text field beneath every existing form field
  editor.addField(FormEditor.FLDTYP_TXT, "TextField" + i, allfields[i], 1, box[i].getX, box[i].getY(), box[i].getX() + 50, box[i].getY() + 10);
}
//Close the document
editor.save();
Mehper C. Palavuzlar
la source
1

Apparemment, il existe une démonstration en ligne d'un package appelé AspPDF , qui vous permet de faire exactement cela. Vous pouvez trouver un lien direct ici .

t0mgs
la source