Cara melihat nama bidang formulir dalam dokumen pdf


25

Saya memiliki dokumen pdf dengan banyak bidang formulir di atasnya. Saya perlu melihat nama-nama bidang formulir. Bisakah saya melakukan ini dengan Adobe Reader? Mungkin alat pihak ketiga ..?

Jawaban:


3

Kemungkinan Anda akan menemukan aplikasi yang ramah pengguna untuk melakukan ini untuk Anda, tetapi ini adalah bagaimana saya mencapainya dengan sedikit VBScript ...

  1. Unduh dan Instal ABCpdf dari webSupergoo, tersedia di sini ...

  2. Salin skrip berikut ke dalam file teks dan simpan dengan ekstensi file '.vbs'.

  3. Tempatkan salinan file PDF Anda ke folder yang sama dengan skrip, beri nama 'myForm.pdf'.

  4. Klik dua kali file skrip untuk menjalankan.


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"

Setelah skrip selesai, Anda akan menemukan dokumen PDF lain bernama 'output.pdf' muncul di folder yang sama, dengan semua nama bidang overlay di atas bidang.


37

Saya menghargai pertanyaan ini agak lama tetapi jika ada orang lain yang menemukannya, Toolkit PDF akan memungkinkan Anda untuk melakukan ini dengan sangat sederhana dengan perintah yang terlihat seperti ini (di mana PDF yang Anda inginkan dari bidang formulir disebut docsOfInterest.pdf:

pdftk docOfInterest.pdf dump_data_fields

Jika bidang terlalu banyak, lebih baik mengekstraknya di tempat lain menggunakan argumen keluaran. misalnya menggunakan myDataFields sebagai file keluaran: pdftk docOfInterest.pdf dump_data_fields output myDataFields
Jaider

2

Sejauh yang saya tahu Anda tidak dapat melakukannya dengan Acrobat Reader. Anda dapat menggunakan program penulis PDF mereka (Saat ini Acrobat XI) untuk melakukannya, tetapi itu cukup mahal.

Saya harus melakukan hal yang sama hanya untuk beberapa dokumen. Aku hanya download versi trial dari deskPDF Studio X . Dari menu, pergi ke Formulir> Ubah Tata Letak Formulir memungkinkan Anda melihat nama bidang.

Berhati-hatilah bekerja dengan versi percobaan gratis mereka akan mencap dokumen dengan tanda air jika Anda menyimpan dokumen.


1

Ada artikel teknis di Aspose.com yang menjelaskan cara mengidentifikasi nama bidang formulir untuk PDF. Menurut artikel ini, Anda dapat mencapai ini dengan menggunakan kode Java pada halaman.

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

Rupanya ada demo langsung online dari paket yang disebut AspPDF , yang memungkinkan Anda melakukan hal itu. Anda dapat menemukan tautan langsung di sini .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.