web-dev-qa-db-fra.com

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

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

24
Billy Coover

Vous trouverez probablement une application conviviale pour le faire à votre place, mais voici comment je l'obtiens avec un petit VBScript ...

  1. Téléchargez et installez ABCpdf 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" dans le même dossier, avec tous les noms de champs superposés.

3
AffineMesh

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

pdftk docOfInterest.pdf dump_data_fields
36
shearichard

Autant que je sache, vous ne pouvez pas le faire avec Acrobat Reader. Vous pouvez utiliser leur programme PDF writer (actuellement Acrobat XI) pour le faire, mais cela coûte assez cher.

Je devais 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, sélectionnez Formulaires> Modifier la disposition du formulaire vous permet de voir le nom des champs.

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

2
Jemmeh

Il existe un article technique article sur Aspose.com qui explique comment identifier les noms de champs de formulaire pour les fichiers PDF. Selon cet article, vous pouvez y parvenir en utilisant le code Java de 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();

Apparemment, il y a une démonstration en direct en ligne d'un paquet nommé AspPDF , qui vous permet de faire exactement cela. Vous pouvez trouver un lien direct ici .

1
t0mgs