So zeigen Sie Formularfeldnamen in einem PDF-Dokument an

25

Ich habe ein PDF-Dokument mit vielen Formularfeldern. Ich muss die Namen der Formularfelder sehen. Kann ich das mit Adobe Reader machen? Vielleicht ein Drittanbieter-Tool ..?

Billy Coover
quelle

Antworten:

3

Es ist wahrscheinlich, dass Sie eine benutzerfreundliche Anwendung finden, um dies für Sie zu tun, aber so erreiche ich es mit ein wenig VBScript ...

  1. Laden Sie ABCpdf von webSupergoo herunter und installieren Sie es hier ...

  2. Kopieren Sie das folgende Skript in eine Textdatei und speichern Sie es mit der Dateierweiterung ".vbs".

  3. Legen Sie eine Kopie Ihrer PDF-Datei in den gleichen Ordner wie das Skript und nennen Sie sie "myForm.pdf".

  4. Doppelklicken Sie auf die auszuführende Skriptdatei.


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"

Nach Abschluss des Skripts sollte sich im selben Ordner ein weiteres PDF-Dokument mit dem Namen "output.pdf" befinden, in dem alle Feldnamen über den Feldern liegen.

AffineMesh
quelle
37

Ich weiß, dass diese Frage etwas alt ist, aber falls jemand anderes darauf stößt, können Sie dies mit dem PDF Toolkit ganz einfach mit einem Befehl wie dem folgenden tun (das PDF, aus dem die Formularfelder stammen sollen, heißt docsOfInterest.pdf:

pdftk docOfInterest.pdf dump_data_fields
Shearichard
quelle
Wenn die Felder zu viele sind, extrahieren Sie sie besser mit dem Ausgabeargument an einer anderen Stelle. zB mit myDataFields als Ausgabedatei: pdftk docOfInterest.pdf dump_data_fields output myDataFields
Jaider
2

Soweit ich weiß, können Sie dies mit Acrobat Reader nicht tun. Sie können dazu das PDF-Writer-Programm (derzeit Acrobat XI) verwenden, das jedoch recht teuer ist.

Ich musste dasselbe nur für ein paar Dokumente tun. Ich habe gerade die Testversion von deskPDF Studio X heruntergeladen . Im Menü können Sie unter Formulare> Formularlayout ändern den Namen der Felder anzeigen.

Beachten Sie, dass die Verwendung der kostenlosen Testversion Dokumente mit einem Wasserzeichen kennzeichnet, wenn Sie das Dokument speichern.

Jemmeh
quelle
1

Auf Aspose.com gibt es einen technischen Artikel, in dem erläutert wird, wie Formularfeldnamen für PDFs identifiziert werden. Laut diesem Artikel können Sie dies erreichen, indem Sie den Java-Code auf der Seite verwenden.

//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
quelle
1

Anscheinend gibt es eine Online-Live-Demo eines Pakets namens AspPDF , mit der Sie genau das tun können. Einen direkten Link finden Sie hier .

t0mgs
quelle