Preencher formulário PDF Java

Nestes tempos modernos, muitos dados são coletados usando formulários e vale a pena mencionar os formulários PDF preenchíveis neste contexto. Eles são uma maneira eficiente de coletar e organizar informações. Além disso, os formulários PDF preenchíveis estão sendo usados como padrão por diferentes instituições. Por exemplo, algum tribunal de justiça ou uma empresa de compras pode usar formulários PDF preenchíveis com eficiência para padronizar seus procedimentos. Para criar tais aplicativos, Aspose.PDF for Java API é a API mais adequada. Curioso para saber por quê? Vamos explorar os seguintes casos de uso em que trabalharemos com formulários PDF programaticamente.

Instalação

Você pode ir para a seção New Releases onde você pode configurar a API para enriquecer seus aplicativos Java e permitir que eles processem documentos PDF, ou você pode definir a dependência em seu aplicativo Maven como abaixo:

Repositório:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository

Dependência:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.7</version>
</dependency>

Depois de configurar a API com sucesso, vamos para os seguintes casos de uso:

Crie formulários PDF preenchíveis usando Java

Você pode criar um formulário PDF preenchível em aplicativos Java seguindo as etapas abaixo:

  1. Criar um arquivo PDF com uma página em branco
  2. Adicione o campo TextBox e o campo RadioButton na página
  3. Salve o arquivo PDF de saída

O trecho de código abaixo mostra como criar um formulário PDF preenchível do zero usando Java:

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
com.aspose.pdf.Page page = pdfdoc.getPages().add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 740, 440, 770));
nameBox.setPartialName("nameBox1");
nameBox.getDefaultAppearance().setFontSize(10);
nameBox.setMultiline(true);
com.aspose.pdf.Border nameBorder = new com.aspose.pdf.Border(nameBox);
nameBorder.setWidth(1);
nameBox.setBorder(nameBorder);
nameBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
nameBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
TextBoxField mrnBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 718, 440, 738));
mrnBox.setPartialName("Box1");
mrnBox.getDefaultAppearance().setFontSize(10);
com.aspose.pdf.Border mrnBorder = new com.aspose.pdf.Border(mrnBox);
mrnBorder.setWidth(1);
mrnBox.setBorder(mrnBorder);
mrnBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
mrnBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
// Adicionar campos de formulário à primeira página do documento PDF            
pdfdoc.getForm().add(nameBox, 1);
pdfdoc.getForm().add(mrnBox, 1);

//Adicione Radiobuttons em coordenadas de posição específicas em PDF
com.aspose.pdf.Table table = new com.aspose.pdf.Table();
//Definir posição aqui
table.setLeft(200);
table.setTop(300);
table.setColumnWidths("120");
page.getParagraphs().add(table);
com.aspose.pdf.Row r1 = table.getRows().add();
com.aspose.pdf.Row r2 = table.getRows().add();
com.aspose.pdf.Cell c1 = r1.getCells().add();
com.aspose.pdf.Cell c2 = r2.getCells().add();
com.aspose.pdf.RadioButtonField rf = new com.aspose.pdf.RadioButtonField(page);
rf.setPartialName("radio");
pdfdoc.getForm().add(rf, 1);
com.aspose.pdf.RadioButtonOptionField opt1 = new com.aspose.pdf.RadioButtonOptionField();
com.aspose.pdf.RadioButtonOptionField opt2 = new com.aspose.pdf.RadioButtonOptionField();
opt1.setOptionName("Yes");
opt2.setOptionName("No");
opt1.setWidth(15);
opt1.setHeight(15);
opt2.setWidth(15);
opt2.setHeight(15);
rf.add(opt1);
rf.add(opt2);
opt1.setBorder(new com.aspose.pdf.Border(opt1));
opt1.getBorder().setWidth(1);
opt1.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt1.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt1.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt1.setCaption(new com.aspose.pdf.TextFragment("Yes"));
opt2.setBorder(new com.aspose.pdf.Border(opt1));
opt2.getBorder().setWidth(1);
opt2.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt2.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt2.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt2.setCaption(new com.aspose.pdf.TextFragment("No"));
c1.getParagraphs().add(opt1);
c2.getParagraphs().add(opt2);
pdfdoc.save(dataDir + "Fillable_PDF_Form.pdf");

Preencha, modifique ou exclua campos de formulário em PDF existente usando Java

Aprendemos a criar um novo arquivo PDF preenchível do zero. Vamos prosseguir para os cenários em que os documentos PDF existentes são processados:

i) Preencha um campo de formulário em um arquivo PDF existente usando Java

Assim como criamos o formulário PDF no exemplo acima, vamos prosseguir com o mesmo documento e preencher os campos do formulário programaticamente usando Java. Você pode preencher o formulário criado com as etapas abaixo:

  1. Carregar arquivo de entrada
  2. Preencha os valores no campo TextBox
  3. Preencha os campos RadioButton selecionando uma opção
  4. Salvar formulário PDF

O snippet de código abaixo mostra como preencher formulários preenchíveis usando Java:

// Abrir documento
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf");

// Obtenha os campos
TextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1");
TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1");
// Preencha os valores dos campos do formulário
textBoxField1.setValue("A quick brown fox jumped over a lazy dog.");
textBoxField2.setValue("A quick brown fox jumped over a lazy dog.");

// Obter campo de botão de opção
RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");
// Especifique o índice do botão de opção do grupo
radioField.setSelected(1);

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// Salvar documento atualizado
pdfDocument.save(dataDir);

ii) Modificar um campo de formulário em documento PDF usando Java

Às vezes, precisamos editar ou atualizar valores de campo em um formulário PDF. Você pode editar facilmente um formulário PDF preenchível com as etapas abaixo:

  1. Inicializar PDF de entrada
  2. Obter uma referência ao campo de formulário por seu nome
  3. Editar o formulário PDF
  4. Salvar formulário PDF editado

O snippet de código abaixo mostra como atualizar ou editar um arquivo PDF preenchível usando Java:

// Abrir documento
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Obter um campo
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1");
// Modificar valor do campo
textBoxField.setValue("Changed Value");
textBoxField.setReadOnly(true);
dataDir = dataDir + "ModifyFormField.pdf";
// Salvar documento atualizado
pdfDocument.save(dataDir);

iii) Excluir um campo de formulário em um arquivo PDF existente usando Java

Você pode remover ou excluir um campo de formulário facilmente em seus aplicativos Java. Você pode seguir os passos abaixo:

  1. Inicializar um formulário PDF
  2. Exclua o campo de formulário usando seu nome
  3. Salvar formulário PDF atualizado

O trecho de código abaixo mostra como excluir um campo de formulário de um formulário PDF usando Java:

// Abrir documento
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Excluir um campo específico por nome
pdfDocument.getForm().delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// Salvar documento modificado
pdfDocument.save(dataDir);

Preservar direitos estendidos de formulários PDF usando Java

Você pode notar que alguns formulários PDF têm direitos estendidos. Eles são usados para evitar modificações no conteúdo original e apenas o preenchimento de formulários é permitido. Os direitos estendidos de arquivos PDF podem ser afetados quando

Você preenche esse formulário e o salva em diferentes locais do disco. Portanto, precisamos salvar esses arquivos de forma incremental com as etapas abaixo:

  1. Inicializar formulário PDF
  2. Preencha os campos
  3. Salve o documento PDF preenchido

O trecho de código abaixo mostra como preservar os direitos estendidos ao preencher o formulário PDF, usando Java:

// Instanciar instância de documento
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// Obter valores de todos os campos
for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields())
{
    // Se o nome completo do campo contiver nameBox1, execute a operação
    if (formField.getFullName().contains("nameBox1"))
    {
        // Campo de formulário de conversão como TextBox
        TextBoxField textBoxField = (TextBoxField) formField;
        // Modificar valor do campo
        textBoxField.setValue("Preserve Extended Features");
    }
}
// Salve o documento atualizado
pdfDocument.save();

Use JavaScript no formulário PDF usando Java

Você pode preencher os campos de formulário PDF preenchíveis usando Javascript com Aspose.PDF para Java. Você deve seguir os seguintes passos:

  1. Carregar documento PDF
  2. Adicionar um campo em um local de página específico
  3. Definir JavaScript e ação aberta para o documento Salvar arquivo PDF

O trecho de código a seguir mostra como usar JavaScript em formulários PDF preenchíveis:

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
pdfdoc.getPages().add();
TextBoxField textBoxField = new TextBoxField(pdfdoc.getPages().get_Item(1), new com.aspose.pdf.Rectangle(85, 750, 215, 770));
textBoxField.setPartialName("textbox1");
textBoxField.setValue("Text Box");
//TextBoxField.Border = new Border();
com.aspose.pdf.Border border = new com.aspose.pdf.Border(textBoxField);
border.setWidth(2);
border.setDash(new com.aspose.pdf.Dash(1, 1));
textBoxField.setBorder(border);
textBoxField.getDefaultAppearance().setFontSize(10);
textBoxField.setColor(com.aspose.pdf.Color.fromRgb(java.awt.Color.GREEN));
// Adicionar campo ao documento
pdfdoc.getForm().add(textBoxField, 1);
String JS = "var w = this.getField('" + textBoxField.getPartialName() + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.setOpenAction(new com.aspose.pdf.JavascriptAction(JS));
pdfdoc.save(dataDir + "JS_Form.pdf");

Conclusão

Aprendemos como criar formulários PDF preenchíveis, bem como preencher ou editar os campos do formulário usando o ambiente Java. Além disso, também exploramos a preservação dos direitos estendidos em documentos PDF, além de usar JavaScript em uma ação de documento PDF. Em caso de dúvidas ou problemas, sinta-se à vontade para entrar em contato conosco em Fórum de suporte gratuito.

Veja também