Como Preencher Campos de Formulários PDF em Python

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

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")`
PYTHON

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")
PYTHON

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.

PontasAo projetar formulários HTML para conversão em PDF, mantenha os atributos de campo 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?

PDF renderizado pelo IronPDF mostrando um formulário vazio com os campos de entrada de texto 'Nome' e 'Sobrenome' prontos para preenchimento de dados

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?

Formulário PDF preenchido com IronPDF exibindo 'Minnie' no campo Nome e 'Mouse' no campo Sobrenome após preenchimento programático

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")
PYTHON

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.

ObserveIronPDF suporta campos AcroForm, o formato padrão de formulário interativo. Documentos PDF digitalizados e somente imagem não contêm dados de campo; use IronOCR para extrair texto desses documentos primeiro.

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:

Convenções de valores de campo de formulário PDF IronPDF para tipos de entrada não textuais
Tipo de CampoTipo de Entrada HTMLValor a Ser DefinidoNotas
Caixa de Seleção"true" ou "false"Não diferencia maiúsculas de minúsculas; use string, não booleano
Botão de rádioO atributo value da opção a ser selecionadaMesmo nome, valores diferentes por opção
Lista suspensa (combo box)O texto exibido da opção desejadaDeve 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")
PYTHON

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.

CuidadoSe 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}")
PYTHON

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.

ImportantePara execuções em lote de alto volume, considere carregar o modelo uma vez com 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")
PYTHON

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.

PontasAchate imediatamente antes de salvar quando o documento estiver destinado ao arquivamento. Se o mesmo documento for revisado e corrigido primeiro, mantenha os campos interativos até o salvamento final.

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.

ObserveIronPDF requer Python 3.6 ou posterior. O pacote inclui um mecanismo de Chromium sem cabeça usado para renderização de HTML para PDF, então a primeira importação pode demorar um pouco enquanto o mecanismo é inicializado.

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:

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.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Versão: 2026.5 just released
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas?
executar um exemplo Veja seu HTML se transformar em um PDF.