Trabalhando com campos de formulário

Um documento que contém espaços em branco (campos) de preenchimento é conhecido como formulário. Por exemplo, você pode criar um formulário de registro em Microsoft Word que usa listas suspensas nas quais os usuários podem selecionar entradas. O campo Form é um local onde um tipo específico de dados, como nome ou endereço, é armazenado. Os campos de formulário no Microsoft Word incluem entrada de texto, caixa de combinação e caixa de seleção.

Você pode usar campos de formulário em seu projeto para “se comunicar” com seus usuários. Por exemplo, você cria um documento cujo conteúdo é protegido, mas apenas os campos do formulário são editáveis. Os usuários podem inserir os dados nos campos do formulário e enviar o documento. Seu aplicativo que usa Aspose.Words pode recuperar dados dos campos do formulário e processá-los.

Colocar campos de formulário no documento por meio de código é fácil. DocumentBuilder possui métodos especiais para inseri-los, um para cada tipo de campo do formulário. Cada um dos métodos aceita um parâmetro string que representa o nome do campo do formulário. O nome pode ser uma string vazia. Se, no entanto, você especificar um nome para o campo do formulário, um marcador será criado automaticamente com o mesmo nome.

Inserindo campos de formulário

Os campos de formulário são um caso particular de campos do Word que permitem a “interação” com o usuário. Os campos de formulário no Microsoft Word incluem caixa de texto, caixa de combinação e caixa de seleção.

DocumentBuilder fornece métodos especiais para inserir cada tipo de campo de formulário no documento: insert_text_input, insert_check_box e insert_combo_box. Observe que se você especificar um nome para o campo do formulário, um marcador será criado automaticamente com o mesmo nome.

O exemplo de código a seguir mostra como inserir um campo de formulário combobox em um documento:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
items = ["One", "Two", "Three"]
builder.insert_combo_box("DropDown", items, 0)

Insira uma entrada de texto

Use o método insert_text_input para inserir uma caixa de texto no documento.

O exemplo de código a seguir mostra como inserir um campo de formulário de entrada de texto em um documento:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.insert_text_input("TextInput", aw.fields.TextFormFieldType.REGULAR, "", "Hello", 0)
        
doc.save(docs_base.artifacts_dir + "WorkingWithFormFields.document_builder_insert_text_input_form_field.docx")

Insira uma caixa de seleção

Chame insert_check_box para inserir uma caixa de seleção no documento.

O exemplo de código a seguir mostra como inserir um campo de formulário de caixa de seleção em um documento:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

builder.insert_check_box("CheckBox", True, True, 0)
        
doc.save(docs_base.artifacts_dir + "WorkingWithFormFields.document_builder_insert_check_box_form_field.docx")

Insira uma caixa de combinação

Chame insert_combo_box para inserir uma Combobox no documento.

O exemplo de código a seguir mostra como inserir um campo de formulário Combobox em um documento:

doc = aw.Document()
builder = aw.DocumentBuilder(doc)

items =  ["One", "Two", "Three"] 
builder.insert_combo_box("DropDown", items, 0)

doc.save(docs_base.artifacts_dir + "WorkingWithFormFields.document_builder_insert_combo_box_form_field.docx")

Obtenha campos de formulário

Uma coleção de campos de formulário é representada pela classe FormFieldCollection que pode ser recuperada usando a propriedade form_fields. Isso significa que você pode obter campos de formulário contidos em qualquer nó do documento, incluindo o próprio documento.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Form fields.docx")
formFields = doc.range.form_fields

Você pode obter um campo de formulário específico por seu índice ou nome.

O exemplo de código a seguir mostra como acessar campos de formulário:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Form fields.docx")
documentFormFields = doc.range.form_fields
formField1 = documentFormFields[3]
#formField2 = documentFormFields["Text2"]

As propriedades FormField permitem trabalhar com nome, tipo e resultado do campo do formulário.

O exemplo de código a seguir mostra como trabalhar com nome, tipo e resultado do campo de formulário:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Form fields.docx")
formField = doc.range.form_fields[3]
if formField.type == aw.fields.FieldType.FIELD_FORM_TEXT_INPUT :
formField.result = "My name is " + formField.name

Formatar campos de formulário

A propriedade font do FormField permite aplicar a formatação da fonte ao FormField como um todo, incluindo o valor do campo.

O exemplo de código a seguir mostra como aplicar a formatação de fonte ao FormField:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document(docs_base.my_dir + "Form fields.docx")
documentFormFields = doc.range.form_fields
formField1 = documentFormFields[3]
#formField2 = documentFormFields["Text2"]
formField1.font.size = 20
#formField2.font.color = Color.red