Como Preencher Campos de Formulários PDF em Python
Preencha formulários PDF programaticamente em Python usando o IronPDF: carregue um PDF existente, localize cada campo pelo nome, atribua valores e salve o resultado em apenas algumas linhas.
Início Rápido: Preencher Campos de Formulários PDF
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/quickstart.py
1. Install IronPDF: `pip install ironpdf`
2. Load your PDF: `form_document = PdfDocument.FromFile("form.pdf")`
3. Find form field: `field = form_document.Form.FindFormField("fieldname")`
4. Set field value: `field.Value = "Your Value"`
5. Save filled PDF: `form_document.SaveAs("filled_form.pdf")`
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
1. Install IronPDF: `pip install ironpdf`
2. Load your PDF: `form_document = PdfDocument.FromFile("form.pdf")`
3. Find form field: `field = form_document.Form.FindFormField("fieldname")`
4. Set field value: `field.Value = "Your Value"`
5. Save filled PDF: `form_document.SaveAs("filled_form.pdf")`
Como Preencher Campos de Formulários PDF em Python
- Instale a biblioteca IronPDF for Python
- Carregar um documento PDF existente que contenha campos de formulário.
- Acesse um campo de formulário pelo nome usando o método
FindFormFielddo atributo Form - Atribua um novo valor ao atributo Value do campo
- Exporte o documento modificado usando
SaveAs
Coletar dados por meio de uma interface web e, em seguida, gerar um PDF preenchido para arquivamento ou processamento subsequente é um padrão comum de automação de documentos. Em vez de transcrever dados manualmente em formulários PDF, scripts Python podem lidar com isso instantaneamente: lendo os nomes dos campos, preenchendo os valores e produzindo documentos finalizados prontos para armazenamento ou distribuição.
IronPDF torna esse fluxo de trabalho direto: uma API para criar formulários a partir de HTML, um método para localizar um campo pelo nome, uma propriedade para definir seu valor. Formulários PDF na prática contêm mais do que entradas de texto. As caixas de seleção, os botões de opção e os campos suspensos são todos suportados através da mesma abordagem FindFormField e Value. O restante deste guia percorre os cenários principais: gerando um formulário a partir de markup HTML, preenchendo campos em um documento existente, lendo todos os tipos de campos e executando preenchimentos em massa a partir de uma fonte de dados.
Como Eu Crio e Preencho um Formulário PDF Usando HTML em Python?
O IronPDF pode converter elementos HTML <input> diretamente em campos PDF editáveis, oferecendo um caminho direto da definição de um formulário no estilo da web para um documento PDF preenchível. Você pode projetar formulários com HTML e CSS familiares e, em seguida, preenchê-los imediatamente sem uma etapa manual intermediária.
O exemplo abaixo renderiza um formulário HTML como um PDF e, em seguida, preenche os campos firstname e lastname antes de salvar o resultado.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/fill-form-from-html.py
from ironpdf import *
# Define HTML content for a simple form
form_html = """
<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=''>
</form>
</body>
</html>
"""
# Instantiate a PDF renderer
renderer = ChromePdfRenderer()
# Enable HTML form-to-PDF-field conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
# Render the HTML content to a PDF file
renderer.RenderHtmlAsPdf(form_html).SaveAs("BasicForm.pdf")
# Load the created PDF document
form_document = PdfDocument.FromFile("BasicForm.pdf")
# Access the "firstname" field and set its value
first_name_field = form_document.Form.FindFormField("firstname")
first_name_field.Value = "Minnie"
print("FirstNameField value: {}".format(first_name_field.Value))
# Access the "lastname" field and set its value
last_name_field = form_document.Form.FindFormField("lastname")
last_name_field.Value = "Mouse"
print("LastNameField value: {}".format(last_name_field.Value))
# Save the filled form
form_document.SaveAs("FilledForm.pdf")
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
from ironpdf import *
# Define HTML content for a simple form
form_html = """
<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=''>
</form>
</body>
</html>
"""
# Instantiate a PDF renderer
renderer = ChromePdfRenderer()
# Enable HTML form-to-PDF-field conversion
renderer.RenderingOptions.CreatePdfFormsFromHtml = True
# Render the HTML content to a PDF file
renderer.RenderHtmlAsPdf(form_html).SaveAs("BasicForm.pdf")
# Load the created PDF document
form_document = PdfDocument.FromFile("BasicForm.pdf")
# Access the "firstname" field and set its value
first_name_field = form_document.Form.FindFormField("firstname")
first_name_field.Value = "Minnie"
print("FirstNameField value: {}".format(first_name_field.Value))
# Access the "lastname" field and set its value
last_name_field = form_document.Form.FindFormField("lastname")
last_name_field.Value = "Mouse"
print("LastNameField value: {}".format(last_name_field.Value))
# Save the filled form
form_document.SaveAs("FilledForm.pdf")
Definir CreatePdfFormsFromHtml para True no atributo RenderingOptions instrui o renderizador a traduzir cada elemento <input> no HTML em um campo PDF interativo correspondente. Sem essa bandeira, as entradas de texto são renderizadas como elementos visuais estáticos e não podem ser preenchidas programaticamente.
Após a renderização, PdfDocument.FromFile carrega o arquivo salvo de volta na memória. O método FindFormField aceita o atributo name do campo como uma string e retorna um objeto FormField. Atribuir a Value escreve os dados no campo. A chamada SaveAs grava o documento modificado no disco.
name curtos e seguros para URL. Espaços e caracteres especiais em nomes de campos funcionam, mas podem complicar pesquisas posteriores.Como É o Formulário Vazio Antes do Preenchimento?

O PDF renderizado preserva o layout visual do formulário HTML. Cada entrada de texto aparece como um campo clicável e editável. Quando o formulário é aberto em um leitor de PDF, os usuários ainda podem digitar nos campos manualmente, ou os campos podem ser preenchidos via API, como mostrado acima.
Como É o Formulário Completo Após o Preenchimento?

O documento preenchido mostra os valores escritos em cada campo. A estrutura do formulário e a interatividade dos campos estão totalmente intactas: o PDF pode ser salvo como está para arquivamento ou achatado para travar os valores no lugar para distribuição.
Como Eu Preencho Campos em um Documento PDF Existente?
Muitos fluxos de trabalho do mundo real envolvem formulários PDF criados no Adobe Acrobat, Word ou outras ferramentas. O IronPDF pode carregar qualquer PDF que contenha campos AcroForm e preenchê-los com a mesma API FindFormField e Value usada ao criar formulários a partir de HTML. AcroForm é o formato padrão de formulário interativo definido na especificação PDF e é suportado por todos os principais leitores de PDF.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/fill-existing-form.py
from ironpdf import *
# Load a pre-existing PDF with form fields
form_document = PdfDocument.FromFile("existing_form.pdf")
# Enumerate available field names (helpful when exploring an unfamiliar form)
for field in form_document.Form.Fields:
print("Field name:", field.Name, "| Current value:", field.Value)
# Fill a specific field by name
applicant_name_field = form_document.Form.FindFormField("applicant_name")
applicant_name_field.Value = "Jane Smith"
# Fill a second field
date_field = form_document.Form.FindFormField("application_date")
date_field.Value = "2026-05-03"
# Save the filled document
form_document.SaveAs("submitted_application.pdf")
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
from ironpdf import *
# Load a pre-existing PDF with form fields
form_document = PdfDocument.FromFile("existing_form.pdf")
# Enumerate available field names (helpful when exploring an unfamiliar form)
for field in form_document.Form.Fields:
print("Field name:", field.Name, "| Current value:", field.Value)
# Fill a specific field by name
applicant_name_field = form_document.Form.FindFormField("applicant_name")
applicant_name_field.Value = "Jane Smith"
# Fill a second field
date_field = form_document.Form.FindFormField("application_date")
date_field.Value = "2026-05-03"
# Save the filled document
form_document.SaveAs("submitted_application.pdf")
Iterar form_document.Form.Fields antes de preencher é útil ao trabalhar com formulários cujos nomes de campo não estão documentados. O loop imprime cada nome de campo e seu valor atual, fornecendo um mapa completo do que o formulário espera antes que qualquer valor seja escrito.
Como Eu Trabalho com Caixas de Seleção e Outros Tipos de Campos?
Campos de texto são o elemento de formulário mais comum, mas formulários do mundo real incluem caixas de seleção, botões de rádio e campos de lista suspensa. O IronPDF expõe todos esses através da mesma coleção Form.Fields. A propriedade Value aceita a string apropriada para cada tipo.
A tabela abaixo mostra os valores aceitos para os três tipos de campos não textuais mais comuns:
| Tipo de Campo | Tipo de Entrada HTML | Valor a Ser Definido | Notas |
|---|---|---|---|
| Caixa de Seleção | | "true" ou "false" | Não diferencia maiúsculas de minúsculas; use string, não booleano |
| Botão de rádio | | O atributo value da opção a ser selecionada | Mesmo nome, valores diferentes por opção |
| Lista suspensa (combo box) | | O texto exibido da opção desejada | Deve corresponder exatamente a uma opção existente |
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/fill-field-types.py
from ironpdf import *
# Load a form with multiple field types
form_document = PdfDocument.FromFile("application_form.pdf")
# Fill a text field
form_document.Form.FindFormField("full_name").Value = "Alex Rivera"
# Check a checkbox (use string "true")
form_document.Form.FindFormField("agree_terms").Value = "true"
# Select a radio button option by its value attribute
form_document.Form.FindFormField("employment_status").Value = "full_time"
# Select a dropdown option by display text
form_document.Form.FindFormField("country").Value = "United States"
form_document.SaveAs("completed_application.pdf")
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
from ironpdf import *
# Load a form with multiple field types
form_document = PdfDocument.FromFile("application_form.pdf")
# Fill a text field
form_document.Form.FindFormField("full_name").Value = "Alex Rivera"
# Check a checkbox (use string "true")
form_document.Form.FindFormField("agree_terms").Value = "true"
# Select a radio button option by its value attribute
form_document.Form.FindFormField("employment_status").Value = "full_time"
# Select a dropdown option by display text
form_document.Form.FindFormField("country").Value = "United States"
form_document.SaveAs("completed_application.pdf")
Ao iterar form_document.Form.Fields, cada objeto FormField expõe uma propriedade Name e uma propriedade Value. Para grupos de botões de opção e listas suspensas, imprimir o código existente Value antes de escrever mostrará a seleção atual e confirmará o formato esperado para esse campo.
FindFormField retornar None, o nome do campo não existe no documento. Imprima todos os nomes usando form_document.Form.Fields para verificar a ortografia e confirmar se o campo está presente. Os nomes dos campos diferenciam maiúsculas de minúsculas.Como Eu Preencho Formulários em Massa a Partir de Uma Fonte de Dados?
Gerar um PDF preenchido por registro a partir de uma planilha ou consulta de banco de dados é uma das razões mais comuns para as equipes recorrerem ao preenchimento de formulários programaticamente. IronPDF lida com isso tratando cada operação de preenchimento como sem estado: carregue o modelo, preencha os campos, salve com um nome único e repita.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/bulk-fill-forms.py
from ironpdf import *
# Sample data records (replace with database or CSV source)
applicants = [
{"name": "Alice Johnson", "id": "A001", "date": "2026-05-03"},
{"name": "Bob Williams", "id": "B002", "date": "2026-05-03"},
{"name": "Carol Davis", "id": "C003", "date": "2026-05-03"},
]
for applicant in applicants:
# Load template from disk on each iteration to avoid cross-contamination
form_document = PdfDocument.FromFile("application_template.pdf")
# Fill each field from the data record
form_document.Form.FindFormField("applicant_name").Value = applicant["name"]
form_document.Form.FindFormField("applicant_id").Value = applicant["id"]
form_document.Form.FindFormField("submission_date").Value = applicant["date"]
# Save each filled form with a unique filename
output_path = f"output/application_{applicant['id']}.pdf"
form_document.SaveAs(output_path)
print(f"Saved: {output_path}")
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
from ironpdf import *
# Sample data records (replace with database or CSV source)
applicants = [
{"name": "Alice Johnson", "id": "A001", "date": "2026-05-03"},
{"name": "Bob Williams", "id": "B002", "date": "2026-05-03"},
{"name": "Carol Davis", "id": "C003", "date": "2026-05-03"},
]
for applicant in applicants:
# Load template from disk on each iteration to avoid cross-contamination
form_document = PdfDocument.FromFile("application_template.pdf")
# Fill each field from the data record
form_document.Form.FindFormField("applicant_name").Value = applicant["name"]
form_document.Form.FindFormField("applicant_id").Value = applicant["id"]
form_document.Form.FindFormField("submission_date").Value = applicant["date"]
# Save each filled form with a unique filename
output_path = f"output/application_{applicant['id']}.pdf"
form_document.SaveAs(output_path)
print(f"Saved: {output_path}")
Carregar o modelo dentro do loop, em vez de uma vez antes, evita que os valores dos campos se acumulem ao longo das iterações. Cada chamada para PdfDocument.FromFile produz uma nova cópia do modelo, portanto, preencher um registro não pode afetar o próximo.
PdfDocument.FromFile e usar um mecanismo de cópia se a API o suportar. Faça benchmarks de ambas as abordagens em relação aos seus requisitos de volume antes de implantar.IronPDF não impõe um limite artificial sobre quantos documentos um script pode gerar em uma única execução. O rendimento é determinado pela memória disponível e pela velocidade de E/S do destino de saída. Para lotes muito grandes, escrever para um SSD local e depois transferir para armazenamento em rede é mais rápido do que escrever diretamente para uma unidade de rede.
Como Eu Achato um Formulário PDF Preenchido?
Achatar converte campos de formulário interativos em conteúdo de página estático, travando os valores atuais no lugar. Um PDF achatado é a escolha certa para arquivamento, impressão ou envio para destinatários que não devem alterar os valores dos campos.
IronPDF fornece um método para achatar campos de formulário que opera em qualquer PdfDocument carregado. Chame-o após preencher os campos e salve o resultado.
:path=/static-assets/ironpdf-python/content-code-examples/how-to/python-fill-pdf-form/flatten-form.py
from ironpdf import *
# Load and fill a form
form_document = PdfDocument.FromFile("application_template.pdf")
form_document.Form.FindFormField("full_name").Value = "Jordan Lee"
form_document.Form.FindFormField("application_date").Value = "2026-05-03"
# Flatten all form fields to lock values as static content
form_document.Form.Flatten()
# Save the flattened, non-editable PDF
form_document.SaveAs("archived_application.pdf")
// ESTE TRECHO DE CÓDIGO NÃO ESTÁ DISPONÍVEL!
from ironpdf import *
# Load and fill a form
form_document = PdfDocument.FromFile("application_template.pdf")
form_document.Form.FindFormField("full_name").Value = "Jordan Lee"
form_document.Form.FindFormField("application_date").Value = "2026-05-03"
# Flatten all form fields to lock values as static content
form_document.Form.Flatten()
# Save the flattened, non-editable PDF
form_document.SaveAs("archived_application.pdf")
Após Flatten(), o documento não contém mais objetos de campo interativos. Sistemas a jusante que recebem o arquivo veem o conteúdo do texto normal em vez de widgets de formulário. Isso é importante para a conformidade de arquivamento PDF/A e para evitar edições não intencionais em pipelines de revisão de múltiplos estágios.
Como instalo o IronPDF em Python?
IronPDF está disponível no PyPI. Instale-o com pip:
pip install ironpdf
Após a instalação, importe a biblioteca no início de cada script com from ironpdf import *. Uma licença de avaliação gratuita está disponível para avaliação. Implantações em produção exigem uma chave de licença comercial definida através da propriedade License.LicenseKey antes da execução de qualquer operação em PDF.
Quais São os Próximos Passos para a Automação de Formulários PDF em Python?
Este guia abordou a criação de formulários PDF a partir de HTML, preenchendo campos em documentos existentes, trabalhando com caixas de seleção e campos de lista suspensa, gerando lotes de formulários preenchidos a partir de registros de dados e achatando PDFs preenchidos para arquivamento. Cada técnica utiliza a mesma API principal: FindFormField para localizar um campo pelo nome, Value para atribuir dados e SaveAs para gravar o resultado.
Para explorar capacidades relacionadas no IronPDF for Python:
- Criar formulários PDF a partir de templates HTML: projete layouts de formulário completos usando HTML e CSS
- Editar e preencher formulários PDF existentes: trabalhe com campos AcroForm em documentos criados fora do IronPDF
- Achatar campos de formulário PDF: trave os valores dos campos no lugar para arquivamento ou distribuição pronta para impressão
- Extrair texto e imagens de PDFs: leia os dados de volta dos documentos preenchidos
- Guia de conversão de HTML para PDF: cobertura detalhada do pipeline de renderização que o IronPDF usa
- Explore os exemplos de código fonte do IronPDF for Python no GitHub: código executável para todos os cenários deste guia
Inicie uma avaliação gratuita para testar o preenchimento de formulários em seu próprio projeto Python. Quando estiver pronto para implantar, veja as opções de licenciamento para pacotes de desenvolvedor individual e empresarial.
Perguntas frequentes
Quais são os passos básicos para preencher um formulário PDF programaticamente em Python?
Instale o IronPDF com pip install ironpdf, carregue seu PDF usando PdfDocument.FromFile(), encontre o campo alvo com form_document.Form.FindFormField(), atribua um valor a field.Value, então salve com SaveAs().
Como posso acessar e modificar campos específicos de um formulário em um documento PDF?
Use o método FindFormField no atributo Form de um PdfDocument carregado, passando o nome do campo como uma string. O método retorna um objeto FormField cujo Value você pode ler ou definir.
Como preencho caixas de seleção e campos de lista suspensa com o IronPDF?
Para caixas de seleção, defina Value como a string "true" ou "false". Para botões de rádio, defina Value como o atributo de valor da opção desejada. Para listas suspensas, defina Value como o texto de exibição exato da opção que você deseja selecionar.
Posso automatizar o preenchimento em massa de formulários PDF para vários documentos?
Sim. Carregue o modelo dentro de um loop com PdfDocument.FromFile() em cada iteração para obter uma cópia nova, preencha os campos da sua fonte de dados e salve cada resultado com um nome de arquivo único usando SaveAs().
O que é achatamento de formulário e quando devo usá-lo?
O achatamento converte campos de formulário interativos em conteúdo de página estático, bloqueando valores no lugar. Chame form_document.Form.Flatten() antes de salvar quando o documento estiver destinado a arquivamento, impressão ou distribuição para destinatários que não devem editar os valores dos campos.
O que acontece se FindFormField não puder encontrar um campo?
Se não existir nenhum campo com o nome dado, FindFormField retorna None. Itere form_document.Form.Fields para imprimir todos os nomes de campos disponíveis e confirmar a grafia correta. Os nomes dos campos são sensíveis a maiúsculas e minúsculas.
Quais tipos de formulários PDF o IronPDF suporta?
O IronPDF suporta campos AcroForm, o formato padrão de formulário interativo usado pelo Adobe Acrobat e pela maioria das ferramentas de autoria de PDF. PDFs escaneados e documentos apenas de imagem não contêm campos AcroForm e requerem processamento OCR antes que a extração de texto seja possível.

