วิธีดูชื่อเขตข้อมูลฟอร์มในเอกสาร pdf


25

ฉันมีเอกสาร PDF ที่มีเขตข้อมูลฟอร์มอยู่มากมาย ฉันต้องการเห็นชื่อของเขตข้อมูลฟอร์ม ฉันสามารถทำสิ่งนี้กับ Adobe Reader ได้หรือไม่ บางทีเครื่องมือของบุคคลที่สาม ..

คำตอบ:


3

เป็นไปได้ว่าคุณจะพบแอปพลิเคชันที่ใช้งานง่ายทำเพื่อคุณ แต่นี่คือวิธีที่ฉันจะทำให้สำเร็จด้วย VBScript เล็กน้อย ...

  1. ดาวน์โหลดและติดตั้ง ABCpdf จาก webSupergoo ได้ที่นี่ ...

  2. คัดลอกสคริปต์ต่อไปนี้ลงในไฟล์ข้อความและบันทึกด้วยนามสกุลไฟล์ '.vbs'

  3. วางสำเนาไฟล์ PDF ของคุณลงในโฟลเดอร์เดียวกับสคริปต์ตั้งชื่อเป็น 'myForm.pdf'

  4. ดับเบิลคลิกที่ไฟล์สคริปต์เพื่อเรียกใช้


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"

หลังจากสคริปต์เสร็จสิ้นคุณควรค้นหาเอกสาร PDF อื่นที่ชื่อว่า 'output.pdf' ปรากฏขึ้นในโฟลเดอร์เดียวกันโดยที่ชื่อฟิลด์ทั้งหมดซ้อนทับอยู่ด้านบนของฟิลด์


37

ฉันขอบคุณคำถามนี้ค่อนข้างเก่า แต่ในกรณีที่มีคนอื่นเจอPDF Toolkitจะช่วยให้คุณทำสิ่งนี้ได้อย่างง่ายดายด้วยคำสั่งที่มีลักษณะเช่นนี้ (ที่ PDF ที่คุณต้องการให้เขตข้อมูลฟอร์มเรียกว่า docsOfInterest.pdf:

pdftk docOfInterest.pdf dump_data_fields

ถ้าเขตข้อมูลมีจำนวนมากเกินไปให้แยกที่อื่นดีกว่าโดยใช้อาร์กิวเมนต์เอาท์พุท เช่นใช้ myDataFields เป็นไฟล์เอาต์พุต: pdftk docOfInterest.pdf dump_data_fields output myDataFields
Jaider

2

เท่าที่ฉันรู้ว่าคุณไม่สามารถทำได้ด้วย Acrobat Reader คุณสามารถใช้โปรแกรมตัวเขียน PDF ของพวกเขา (ปัจจุบัน Acrobat XI) เพื่อทำมัน แต่มันค่อนข้างแพง

ฉันต้องทำสิ่งเดียวกันสำหรับเอกสารเพียงไม่กี่ ฉันเพิ่งดาวน์โหลดเวอร์ชั่นทดลองของ deskPDF สตูดิโอเอ็กซ์ จากเมนูไปที่ Forms> Modify Form Layout ให้คุณเห็นชื่อของฟิลด์

ระวังการทำงานกับรุ่นทดลองฟรีของพวกเขาจะประทับตราเอกสารด้วยลายน้ำถ้าคุณบันทึกเอกสาร


1

มีบทความทางเทคนิคเกี่ยวกับ Aspose.com ซึ่งจะอธิบายวิธีระบุชื่อเขตข้อมูลฟอร์มสำหรับ PDF ตามบทความนี้คุณสามารถทำได้โดยใช้รหัส Java ในหน้า

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

เห็นได้ชัดว่ามีการสาธิตออนไลน์แบบออนไลน์ของแพ็คเกจที่เรียกว่าAspPDFซึ่งช่วยให้คุณทำเช่นนั้นได้ คุณสามารถค้นหาการเชื่อมโยงโดยตรงที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.