Jak wyświetlić nazwy pól formularza w dokumencie pdf


25

Mam dokument pdf z wieloma polami formularza. Muszę zobaczyć nazwy pól formularza. Czy mogę to zrobić za pomocą Adobe Reader? Być może narzędzie strony trzeciej…?

Odpowiedzi:


3

Prawdopodobnie znajdziesz przyjazną dla użytkownika aplikację, która zrobi to za Ciebie, ale w ten sposób osiągam to przy pomocy małego VBScript ...

  1. Pobierz i zainstaluj ABCpdf z webSupergoo, dostępne tutaj ...

  2. Skopiuj poniższy skrypt do pliku tekstowego i zapisz go z rozszerzeniem „.vbs”.

  3. Umieść kopię pliku PDF w tym samym folderze co skrypt, nadając mu nazwę „myForm.pdf”.

  4. Kliknij dwukrotnie plik skryptu, aby uruchomić.


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"

Po zakończeniu skryptu w tym samym folderze powinien pojawić się inny dokument PDF o nazwie „output.pdf”, z wszystkimi nazwami pól nałożonymi na pola.


37

Rozumiem, że to pytanie jest trochę stare, ale na wypadek, gdyby ktokolwiek go spotkał, Zestaw narzędzi PDF pozwoli ci to zrobić po prostu za pomocą polecenia, które wygląda tak (gdzie PDF, z którego chcesz otrzymać pola formularza, nazywa się docsOfInterest.pdf:

pdftk docOfInterest.pdf dump_data_fields

Jeśli pól jest za dużo, lepiej wyodrębnij je gdzieś indziej, używając argumentu wyjściowego. np. używając myDataFields jako pliku wyjściowego: pdftk docOfInterest.pdf dump_data_fields output myDataFields
Jaider

2

O ile wiem, nie można tego zrobić za pomocą Acrobat Reader. Możesz użyć do tego programu do zapisywania plików PDF (obecnie Acrobat XI), ale jest to dość drogie.

Musiałem zrobić to samo dla kilku dokumentów. Właśnie ściągnąłem wersję próbną deskPDF Studio X . Z menu, przechodząc do Formularze> Modyfikuj układ formularza, możesz zobaczyć nazwę pól.

Pamiętaj, że praca z bezpłatną wersją próbną spowoduje pieczęć dokumentów ze znakiem wodnym, jeśli dokument zostanie zapisany.


1

Na stronie Aspose.com znajduje się artykuł techniczny, który wyjaśnia, jak rozpoznać nazwy pól formularzy dla plików PDF. Zgodnie z tym artykułem można to osiągnąć za pomocą kodu Java na stronie.

//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();

1

Najwyraźniej istnieje internetowa wersja demonstracyjna pakietu o nazwie AspPDF , która pozwala to zrobić. Bezpośredni link można znaleźć tutaj .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.