Extrair Dados AcroForms
Obter Valor de um Campo Individual de Documento PDF
O método getValue() do campo de formulário permite que você obtenha o valor de um campo específico.
Para obter o valor, obtenha o campo de formulário da coleção Form do objeto Document.
Este exemplo seleciona um TextBoxField e recupera seu valor usando o método getValue().
package com.aspose.pdf.examples;
import com.aspose.pdf.Document;
import com.aspose.pdf.Field;
import com.aspose.pdf.TextBoxField;
public class ExamplesExtractFormData {
private static String _dataDir = "/home/aspose/pdf-examples/Samples/Forms/";
public static void GetValueFromIndividualFieldPDFDocument() {
// Abrir um documento
Document pdfDocument = new Document(_dataDir+"GetValueFromField.pdf");
// Obter um campo
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("textbox1");
// Obter o nome do campo
System.out.printf("PartialName :-" + textBoxField.getPartialName());
// Obter o valor do campo
System.out.printf("Value :-" + textBoxField.getValue());
}
Obter Valores de Todos os Campos em um Documento PDF
Para obter valores de todos os campos em um documento PDF, você precisa navegar por todos os campos do formulário e então obter o valor usando o método getValue(). Obtenha cada campo da coleção Form usando o método getForm() do objeto Document e obtenha a lista de campos do formulário em um array Field usando getFields() e percorra o array para obter o valor dos campos.
O trecho de código a seguir mostra como obter os valores de todos os campos em um documento PDF.
public static void GetValuesFromAllFieldsPDFDocument() {
// Abrir documento
Document document = new Document(_dataDir + "GetValuesFromAllFields.pdf");
Field[] fields = document.getForm().getFields();
for (int i = 0; i < fields.length; i++) {
System.out.println("Campo do formulário: " + fields[i].getFullName());
System.out.println("Campo do formulário: " + fields[i].getValue());
}
}
}
Obter Campos de Formulário de uma Região Específica de um Arquivo PDF
Em alguns casos, é necessário obter dados não de todo o formulário, mas, por exemplo, apenas do quarto superior esquerdo da folha impressa. Com Aspose.PDF para Java, isso não é um problema. Você pode especificar uma região para filtrar campos que estão fora da região especificada do arquivo PDF. Para obter campos de formulário de uma área específica de um arquivo PDF:
- Abra o arquivo PDF usando o objeto Document.
- Obtenha o formulário da coleção Forms do documento.
- Especifique a região retangular e passe-a para o método getFieldsInRect do objeto Form. Uma coleção Fields é retornada.
- Use isso para manipular os campos.
O trecho de código a seguir mostra como obter campos de formulário em uma região retangular específica de um arquivo PDF.
public static void GetValuesFromSpecificRegion() {
// Abrir arquivo pdf
Document doc = new Document(_dataDir + "GetFieldsFromRegion.pdf");
// Criar objeto retângulo para obter campos nessa área
Rectangle rectangle = new Rectangle(35, 30, 500, 500);
// Obter o formulário PDF
com.aspose.pdf.Form form = doc.getForm();
// Obter campos na área retangular
Field[] fields = form.getFieldsInRect(rectangle);
// Exibir nomes e valores dos campos
for (Field field : fields)
{
// Exibir propriedades de colocação de imagem para todas as colocações
System.out.println("Nome do Campo: " + field.getFullName() + "-" + "Valor do Campo: " + field.getValue());
}
}