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.
Inserir 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: InsertTextInput, InsertCheckBox e InsertComboBox. 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-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithFields(); | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
string[] items = { "One", "Two", "Three" }; | |
builder.InsertComboBox("DropDown", items, 0); |
Insira uma entrada de texto
Use o método InsertTextInput 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:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.InsertTextInput("TextInput", TextFormFieldType.Regular, "", "Hello", 0); | |
dataDir = dataDir + "DocumentBuilderInsertTextInputFormField_out.doc"; | |
doc.Save(dataDir); |
Insira uma caixa de seleção
Chame InsertCheckBox 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:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
builder.InsertCheckBox("CheckBox", true, true, 0); | |
dataDir = dataDir + "DocumentBuilderInsertCheckBoxFormField_out.doc"; | |
doc.Save(dataDir); |
Insira uma caixa de combinação
Chame InsertComboBox para inserir uma caixa de combinação no documento.
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-.NET | |
Document doc = new Document(); | |
DocumentBuilder builder = new DocumentBuilder(doc); | |
string[] items = { "One", "Two", "Three" }; | |
builder.InsertComboBox("DropDown", items, 0); | |
dataDir = dataDir + "DocumentBuilderInsertComboBoxFormField_out.doc"; | |
doc.Save(dataDir); |
Obtenha campos de formulário
Uma coleção de campos de formulário é representada pela classe FormFieldCollection que pode ser recuperada usando a propriedade FormFields. Isso significa que você pode obter campos de formulário contidos em qualquer nó do documento, incluindo o próprio documento.
O exemplo de código a seguir mostra como obter uma coleção de campos de formulário:
// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithFields(); | |
Document doc = new Document(dataDir + "FormFields.doc"); | |
FormFieldCollection formFields = doc.Range.FormFields; | |
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-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithFields(); | |
Document doc = new Document(dataDir + "FormFields.doc"); | |
FormFieldCollection documentFormFields = doc.Range.FormFields; | |
FormField formField1 = documentFormFields[3]; | |
FormField 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-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithFields(); | |
Document doc = new Document(dataDir + "FormFields.doc"); | |
FormField formField = doc.Range.FormFields[3]; | |
if (formField.Type.Equals(FieldType.FieldFormTextInput)) | |
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-.NET | |
// The path to the documents directory. | |
string dataDir = RunExamples.GetDataDir_WorkingWithFields(); | |
Document doc = new Document(dataDir + "Document.doc"); | |
doc.Range.FormFields[0].Font.Size = 20; | |
doc.Range.FormFields[0].Font.Color = Color.Red; | |
doc.Save(dataDir + "Document_out.doc"); |