답변:
이 작업을 수행하기위한 사용자 친화적 인 응용 프로그램을 찾을 수있을 것입니다. 그러나 이것이 약간의 VBScript로이를 달성하는 방법입니다.
webSupergoo에서 ABCpdf를 다운로드하여 설치 하십시오.
다음 스크립트를 텍스트 파일로 복사하고 '.vbs'파일 확장자로 저장하십시오.
PDF 파일의 사본을 스크립트와 동일한 폴더에 'myForm.pdf'라는 이름으로 배치하십시오.
실행할 스크립트 파일을 두 번 클릭하십시오.
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"
스크립트가 끝나면 'output.pdf'라는 다른 PDF 문서가 동일한 폴더에 나타나고 모든 필드 이름이 필드 위에 겹쳐져 나타납니다.
내가 아는 한 Acrobat Reader로는 할 수 없습니다. PDF 작성기 프로그램 (현재 Acrobat XI)을 사용하여 수행 할 수 있지만 상당히 비쌉니다.
나는 단지 몇 가지 문서에 대해 똑같은 일을해야했습니다. 방금 deskPDF Studio X 평가판을 다운로드했습니다 . 메뉴에서 양식> 양식 레이아웃 수정으로 이동하면 필드 이름을 볼 수 있습니다.
무료 평가판으로 작업하면 문서를 저장하면 워터 마크가있는 문서가 찍히게됩니다.
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();
pdftk docOfInterest.pdf dump_data_fields output myDataFields