Como criar formulários PDF em Java
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
- Adicione IronPDF for Java ao seu projeto via Maven Central
- Defina sua chave de licença com
License.setLicenseKey() - Escreva uma string HTML contendo elementos de formulário padrão (
<input>,<textarea>,<select>) - Ligue para
PdfDocument.renderHtmlAsPdf()para converter o HTML em PDF. - 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");
Como criar formulários PDF em Java
- Instale a biblioteca Java para criar formulários PDF.
- Crie uma string HTML que inclua os campos do formulário.
- Utilize o método
renderHtmlAsPdfpara converter a string HTML em um PDF. - Exportar o documento PDF
- Use os vários tipos de campo de formulário suportados
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.
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");
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");
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");
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.
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.
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:
- Ler e processar dados de formulário : Use
getForm()egetFields()para extrair os valores enviados de um PDF preenchido. O exemplo de dados de formulário mostra o fluxo de trabalho completo de leitura. - Pré-preencha formulários programaticamente: Combine a criação de formulários com o guia de preenchimento de formulários PDF para gerar documentos pré-preenchidos para cada destinatário.
- Proteja seus formulários: Adicione proteção por senha e restrinja edições com o exemplo de configurações de segurança e metadados.
- Renderização avançada: Controle o tamanho do papel, margens, cabeçalhos e rodapés através do guia de configurações de geração de PDF.
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 , ou , passe-a para PdfDocument.renderHtmlAsPdf() e salve o resultado. Cada campo nomeado se torna um campo interativo AcroForm no PDF de saída.
Quais tipos de campos de formulário o IronPDF suporta em Java?
IronPDF mapeia todos os elementos de formulário HTML padrão para seus equivalentes em PDF: se torna um campo de texto de linha única, se torna um campo de texto multilinha, se torna um campo de caixa de seleção, se torna uma caixa de combinação e agrupados pelo mesmo atributo name tornam-se um grupo de botões de rádio.
Preciso do Adobe Acrobat para criar PDFs preenchíveis em Java?
Não. IronPDF inclui seu próprio mecanismo de renderização, portanto, nenhum aplicativo PDF para desktop é necessário. Os PDFs preenchíveis que ele produz são compatíveis com Adobe Acrobat Reader, Foxit Reader e todos os principais visualizadores de PDF.
Posso estilizar formulários PDF com CSS em Java?
Sim. Como o IronPDF renderiza HTML para PDF, você pode aplicar CSS para controlar o tamanho dos campos, fonte, cor e layout. Fontes da web personalizadas carregadas por meio de uma tag em seu HTML também são incorporadas ao PDF de saída.
Como funcionam os grupos de botões de rádio no IronPDF for Java?
Todos os elementos que compartilham o mesmo atributo name são agrupados em um único campo de rádio AcroForm. Selecionar uma opção desmarca as outras. Se nenhuma opção for selecionada, o valor do campo é None. Leia o valor de volta usando getForm().getFields() em um PdfDocument carregado.
Posso ler os dados de formulários criados com IronPDF?
Sim. Carregue o PDF preenchido com PdfDocument.fromFile(), então chame getForm().getFields() para iterar sobre todos os campos do AcroForm e ler seus valores atuais. Os nomes dos campos correspondem aos atributos name que você definiu em seu HTML original.


