Como criar formulários PDF em Java

This article was translated from English: Does it need improvement?
Translated
View the article in English

O IronPDF for Java permite que os desenvolvedores construam formulários PDF dinâmicos e interativos — entradas de texto, caixas de seleção, caixas de combinação e botões de rádio — convertendo HTML em PDFs. A abordagem centrada em HTML dá a você controle total sobre o layout e comportamento do formulário usando tecnologias padrão da web, sem aprender uma API de formulário proprietária. Você também pode preencher formulários PDF existentes programaticamente assim que entender como o IronPDF modela campos de formulário.

Bibliotecas tradicionais de PDF em Java exigem que você construa campos de formulário através de objetos PDF de baixo nível. O IronPDF segue um caminho diferente: escreva seu formulário em HTML e CSS, e depois renderize-o para um PDF que preserva cada campo interativo. O resultado é compatível com o Adobe Acrobat Reader e todos os principais visualizadores de PDF.

Início Rápido: Crie um Formulário PDF em Java

  1. Adicione IronPDF for Java ao seu projeto via Maven Central
  2. Defina sua chave de licença com License.setLicenseKey()
  3. Escreva uma string HTML contendo elementos de formulário padrão (<input>, <textarea>, <select>)
  4. Ligue para PdfDocument.renderHtmlAsPdf() para converter o HTML em PDF.
  5. Salve o documento resultante com saveAs()
//:path=/static-assets/ironpdf-java/howto/create-forms/quickstart-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set license key before any rendering call
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML form with a text field and submit button
String formHtml = "<h2>Registration Form</h2>" +
                  "<form>" +
                  "<label>Name: <input type='text' name='fullname' placeholder='Enter name'></label><br>" +
                  "<button type='submit'>Submit</button>" +
                  "</form>";

// Render HTML to PDF — form fields are preserved
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(formHtml);
pdf.saveAs("registration-form.pdf");
//:path=/static-assets/ironpdf-java/howto/create-forms/quickstart-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set license key before any rendering call
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML form with a text field and submit button
String formHtml = "<h2>Registration Form</h2>" +
                  "<form>" +
                  "<label>Name: <input type='text' name='fullname' placeholder='Enter name'></label><br>" +
                  "<button type='submit'>Submit</button>" +
                  "</form>";

// Render HTML to PDF — form fields are preserved
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(formHtml);
pdf.saveAs("registration-form.pdf");
JAVA

Como criar formulários em Java?

O IronPDF cria formulários PDF a partir de HTML tratando a especificação de formulário HTML W3C como a fonte de verdade. Cada elemento de formulário padrão — <input>, <textarea>, <select>, <checkbox> e <radio> — é preservado no PDF de saída como um campo interativo. Você pode estilizar esses elementos com CSS e incluir fontes personalizadas para corresponder aos requisitos da sua marca.

Ao criar formulários, o IronPDF preserva a natureza interativa dos elementos HTML no PDF resultante. Os usuários podem preencher formulários diretamente em seu visualizador de PDF sem a necessidade de software adicional. Os formulários funcionam com o Adobe Acrobat Reader e todos os visualizadores de PDF comumentre implantados, tornando-os acessíveis em ambientes corporativos e de consumo. Para opções de renderização avançadas, veja a documentação de configurações de geração de PDF.

PontasO IronPDF não requer um navegador em execução ou um driver de impressão PDF instalado. O motor de renderização é fornecido com a biblioteca, então os formulários renderizam de forma idêntica em máquinas de desenvolvimento, servidores CI e implantações em nuvem.

Como faço para criar formulários de entrada de texto e áreas de texto?

Campos de entrada de texto e textareas são os elementos de formulário PDF mais comuns — úteis para coletar nomes, endereços de e-mail, comentários e descrições de múltiplas linhas. O IronPDF mapeia <input type="text"> para campos de texto PDF de linha única e <textarea> para campos de várias linhas que mantêm suas dimensões de linha e coluna.

Os elementos do formulário HTML mantêm sua funcionalidade quando convertidos para PDF. Os usuários podem clicar em campos, digitar texto e mover-se entre as entradas usando a tecla Tab, assim como em qualquer formulário web. Os valores padrão, o texto de espaço reservado e os atributos de validação HTML5, como required e pattern, são respeitados durante a conversão. Para controle de layout detalhado, combine elementos de formulário com tamanhos de papel personalizados e configurações de margem.

//:path=/static-assets/ironpdf-java/howto/create-forms/text-input-textarea-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with single-line inputs and a multi-line textarea
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <form>
            First name: <br> <input type='text' name='firstname' value=''> <br>
            Last name: <br> <input type='text' name='lastname' value=''> <br>
            Address: <br> <textarea name='address' rows='4' cols='50'></textarea>
        </form>
    </body>
</html>
""";

// Render HTML — both <input> and <textarea> become interactive PDF fields
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("textAreaAndInputForm.pdf");
//:path=/static-assets/ironpdf-java/howto/create-forms/text-input-textarea-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with single-line inputs and a multi-line textarea
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <form>
            First name: <br> <input type='text' name='firstname' value=''> <br>
            Last name: <br> <input type='text' name='lastname' value=''> <br>
            Address: <br> <textarea name='address' rows='4' cols='50'></textarea>
        </form>
    </body>
</html>
""";

// Render HTML — both <input> and <textarea> become interactive PDF fields
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("textAreaAndInputForm.pdf");
JAVA

A chamada renderHtmlAsPdf na classe PdfDocument converte o HTML em um PDF totalmente interativo. Cada campo de formulário nomeado torna-se um campo distinto no dicionário AcroForm do PDF, legível por qualquer visualizador de PDF compatível com padrões. Os nomes de campo que você definiu no atributo name (firstname, lastname, address) são preservados na saída e podem ser lidos novamente quando você extrair os dados do formulário posteriormente.

Documento PDF de saída:


Como faço para criar formulários com caixas de seleção e caixas de combinação?

As caixas de seleção e as caixas de combinação abrangem os dois padrões de seleção mais comuns em formulários PDF: escolhas binárias (ligado/desligado) e seleção de um único item em uma lista. O IronPDF mapeia elementos <input type="checkbox"> para campos de caixa de seleção em PDF e elementos <select> para campos de caixa de combinação (lista suspensa) em PDF.

Os campos de caixa de combinação permitem que os usuários escolham entre uma lista fixa de opções definidas por elementos <option>. Você pode pré-selecionar um valor padrão adicionando o atributo selected a uma opção, agrupar opções relacionadas com <optgroup> e usar CSS para combinar a aparência do menu suspenso com o design do seu documento. O atributo name no elemento <select> torna-se o nome do campo no PDF resultante, facilitando a extração de dados do formulário. Veja o projeto Apache PDFBox para detalhes sobre como os campos AcroForm PDF armazenam esses dados de seleção, se você precisar processar formulários com outras ferramentas.

//:path=/static-assets/ironpdf-java/howto/create-forms/checkbox-combobox-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with a checkbox and a select dropdown
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <h3>Task Completed</h3>
        <label>
            <input type='checkbox' id='taskCompleted' name='taskCompleted'> Mark task as completed
        </label>
        <h3>Select Priority</h3>
        <label for='priority'>Choose priority level:</label>
        <select id='priority' name='priority'>
            <option value='high'>High</option>
            <option value='medium' selected>Medium</option>
            <option value='low'>Low</option>
        </select>
    </body>
</html>
""";

// Render HTML — checkbox and combobox fields are preserved in the PDF
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("checkboxAndComboboxForm.pdf");
//:path=/static-assets/ironpdf-java/howto/create-forms/checkbox-combobox-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with a checkbox and a select dropdown
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        <h3>Task Completed</h3>
        <label>
            <input type='checkbox' id='taskCompleted' name='taskCompleted'> Mark task as completed
        </label>
        <h3>Select Priority</h3>
        <label for='priority'>Choose priority level:</label>
        <select id='priority' name='priority'>
            <option value='high'>High</option>
            <option value='medium' selected>Medium</option>
            <option value='low'>Low</option>
        </select>
    </body>
</html>
""";

// Render HTML — checkbox and combobox fields are preserved in the PDF
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("checkboxAndComboboxForm.pdf");
JAVA

O campo de caixa de seleção armazena um estado booleano (/On ou /Off na notação PDF) que o código subsequente pode ler ao processar formulários enviados. A caixa de combinação armazena o atributo value do <option> selecionado. Ambos os tipos de campo permanecem interativos no PDF salvo — os usuários podem marcar a caixa ou alterar a seleção do dropdown sem quaisquer plugins adicionais ou JavaScript.

Documento PDF de saída:


Como faço para criar formulários com botões de opção?

Botões de rádio apresentam uma escolha mutuamente exclusiva: uma vez que um usuário seleciona uma opção em um grupo, qualquer opção previamente selecionada no mesmo grupo é automaticamente desmarcada. O IronPDF mapeia elementos <input type="radio"> que compartilham um atributo name para um único campo de rádio agrupado no dicionário AcroForm do PDF.

Todos os botões de opção em um grupo devem compartilhar o mesmo valor de atributo name — é isso que os vincula no PDF. O atributo value de cada botão determina o que o campo armazena quando essa opção é selecionada. Se nenhum botão do grupo estiver selecionado, o valor do campo será None. Você pode ler a seleção atual de volta usando os métodos getForm() e getFields() em um PdfDocument carregado, o que permite criar fluxos de trabalho que preenchem formulários previamente ou validam dados enviados. Para um exemplo prático de leitura de campos de formulário, veja o exemplo de dados de formulário em PDF.

//:path=/static-assets/ironpdf-java/howto/create-forms/radio-button-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with a radio button group — all three share name='traveltype'
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        Choose your preferred travel type: <br>
        <input type='radio' name='traveltype' value='Bike'> Bike <br>
        <input type='radio' name='traveltype' value='Car'> Car <br>
        <input type='radio' name='traveltype' value='Airplane'> Airplane
    </body>
</html>
""";

// Render HTML — all three radio inputs become one grouped field in the PDF
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("radioButtonForm.pdf");
//:path=/static-assets/ironpdf-java/howto/create-forms/radio-button-form.java
import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

// Set the license key for IronPDF
License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

// HTML with a radio button group — all three share name='traveltype'
String htmlContent = """
<html>
    <body>
        <h2>Editable PDF Form</h2>
        Choose your preferred travel type: <br>
        <input type='radio' name='traveltype' value='Bike'> Bike <br>
        <input type='radio' name='traveltype' value='Car'> Car <br>
        <input type='radio' name='traveltype' value='Airplane'> Airplane
    </body>
</html>
""";

// Render HTML — all three radio inputs become one grouped field in the PDF
PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlContent);

// Save the document
pdfDoc.saveAs("radioButtonForm.pdf");
JAVA

Como os três elementos <input type="radio"> compartilham o atributo name="traveltype", o IronPDF cria um único grupo de botões de opção AcroForm no PDF de saída. Selecionar "Carro" no Acrobat Reader, por exemplo, define o valor do campo como Car e apaga qualquer seleção anterior. Este comportamento espelha o que os usuários esperam de grupos de botões de rádio em formulários web, tornando a transição de coleta de dados da web para PDF natural.

ObserveOs nomes de grupo de botões de rádio devem ser únicos em todo o formulário. Reutilizar o mesmo nome em diferentes grupos lógicos os mescla em um único campo, impedindo seleções independentes.

Como Aplico as Melhores Práticas para Criação de Formulários PDF?

Formulários PDF confiáveis requerem atenção tanto à configuração de renderização quanto à manutibilidade a longo prazo. O problema mais comum é um formulário que parece correto no navegador, mas perde a interatividade após a conversão — geralmente causado pela ausência de atributos name nos elementos do formulário. Atribua sempre um name a cada campo; O IronPDF usa esse valor como o identificador de campo PDF, e campos sem nomes podem ser descartados ou mesclados.

Teste os formulários em vários visualizadores de PDF antes de distribuí-los. O Adobe Acrobat Reader é a implementação de referência, mas muitos ambientes empresariais implantam o Foxit Reader ou visualizadores baseados em navegador, todos os quais lidam com casos extremos de formas ligeiramente diferentes. Utilize os atributos de validação HTML5 (required, minlength, pattern) que o IronPDF respeita durante a renderização para detectar problemas de qualidade de dados no momento do preenchimento do formulário, em vez de no seu backend. Para documentos sensíveis, aplique senhas e configurações de segurança para proteger o formulário de edições não autorizadas.

Ao implantar em produção, configure sua chave de licença antes da primeira chamada de renderização e mantenha-a em um armazenamento de configuração seguro em vez de codificá-la. O IronPDF publica guias de implantação para ambientes AWS, Azure e Google Cloud. Revise o guia de chaves de licença para detalhes sobre o comportamento de chaves de teste e de produção.

PontasMantenha os nomes dos campos do formulário curtos e alfanuméricos. Alguns leitores de PDF truncam ou rejeitam nomes de campos que contêm espaços ou caracteres especiais, o que pode quebrar a extração de dados do formulário.

Quais São os Próximos Passos para Criar Formulários PDF em Java?

Este guia cobriu os quatro principais tipos de campo de formulário interativo — entradas de texto, textareas, caixas de seleção, caixas de combinação e botões de rádio — e demonstrou como o IronPDF converte a marcação de formulário HTML padrão em PDFs totalmente interativos. Cada tipo de campo mapeia diretamente para o seu equivalente HTML, então modelos de formulários web existentes podem ser reutilizados com modificações mínimas.

A partir daqui, considere explorar:

Comece seu teste gratuito para testar a criação de formulários sem uma licença paga. Quando seu projeto estiver pronto para produção, veja as opções de licenciamento para o plano que se adapta à sua implantação.

Pronto para ver o que mais o IronPDF pode fazer? Confira o tutorial completo de HTML para PDF aqui: Conversão de HTML para PDF em Java

Perguntas frequentes

Qual é a maneira mais fácil de criar formulários PDF em Java?

IronPDF for Java cria formulários PDF a partir de HTML padrão. Escreva uma string HTML com elementos ,