Como exibir nomes de campos de formulário em um documento PDF

25

Eu tenho um documento PDF com muitos campos de formulário. Eu preciso ver os nomes dos campos do formulário. Posso fazer isso com o Adobe Reader? Talvez uma ferramenta de terceiros ..?

Billy Coover
fonte

Respostas:

3

É provável que você encontre um aplicativo amigável para fazer isso por você, mas é assim que eu o alcanço com um pouco de VBScript ...

  1. Baixe e instale o ABCpdf a partir do webSupergoo, disponível aqui ...

  2. Copie o seguinte script em um arquivo de texto e salve-o com uma extensão de arquivo '.vbs'.

  3. Coloque uma cópia do seu arquivo PDF na mesma pasta que o script, com o nome 'myForm.pdf'.

  4. Clique duas vezes no arquivo de script para executar.


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"

Após a conclusão do script, você deverá encontrar outro documento PDF chamado 'output.pdf' na mesma pasta, com todos os nomes de campos sobrepostos nos campos.

AffineMesh
fonte
37

Aprecio que essa pergunta seja um pouco antiga, mas, se alguém o encontrar, o PDF Toolkit permitirá que você faça isso de maneira muito simples com um comando parecido com este (onde o PDF do qual você deseja os campos do formulário é chamado docsOfInterest.pdf:

pdftk docOfInterest.pdf dump_data_fields
shearichard
fonte
Se os campos forem muitos, é melhor extraí-lo em outro lugar usando o argumento de saída. por exemplo, usando myDataFields como arquivo de saída:pdftk docOfInterest.pdf dump_data_fields output myDataFields
Jaider
2

Tanto quanto sei, você não pode fazê-lo com o Acrobat Reader. Você pode usar o programa de gravação de PDF (atualmente Acrobat XI) para fazer isso, mas é bastante caro.

Eu tive que fazer a mesma coisa por apenas alguns documentos. Eu apenas o download da versão de teste do deskPDF Studio X . No menu, vá para Formulários> Modificar layout do formulário e permite ver o nome dos campos.

Esteja ciente de que o trabalho com sua versão de avaliação gratuita carimbará os documentos com uma marca d'água se você salvar o documento.

Jemmeh
fonte
1

Há um artigo técnico no Aspose.com que explica como identificar nomes de campos de formulários para PDFs. De acordo com este artigo, você pode conseguir isso usando o código Java na página.

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

Aparentemente, há uma demonstração ao vivo online de um pacote chamado AspPDF , que permite fazer exatamente isso. Você pode encontrar um link direto aqui .

t0mgs
fonte