Praca z polami formularzy
Dokument zawierający puste pola (pola) do wypełnienia nazywany jest formularzem. Na przykład możesz utworzyć formularz rejestracyjny w Microsoft Word, który korzysta z list rozwijanych, z których użytkownicy mogą wybierać wpisy. Pole Form
to miejsce, w którym przechowywany jest określony typ danych, taki jak imię i nazwisko lub adres. Pola formularzy w Microsoft Word obejmują wprowadzanie tekstu, pole kombi i pole wyboru.
Możesz używać pól formularzy w swoim projekcie do “komunikowania się” z użytkownikami. Na przykład tworzysz dokument, którego treść jest chroniona, ale edytowalne są tylko pola formularza. Użytkownicy mają możliwość wprowadzenia danych w polach formularza i przesłania dokumentu. Twoja aplikacja korzystająca z Aspose.Words może pobierać dane z pól formularza i je przetwarzać.
Umieszczanie pól formularzy w dokumencie za pomocą kodu jest łatwe. DocumentBuilder posiada specjalne metody ich wstawiania, po jednej dla każdego typu pola formularza. Każda z metod przyjmuje parametr string reprezentujący nazwę pola formularza. Nazwa może być pustym ciągiem znaków. Jeśli jednak podasz nazwę pola formularza, automatycznie utworzona zostanie zakładka o tej samej nazwie.
Wstaw pola formularza
Pola formularzy to szczególny przypadek pól programu Word, który umożliwia “interakcję” z użytkownikiem. Pola formularzy w Microsoft Word obejmują pole tekstowe, pole kombi i pole wyboru.
DocumentBuilder udostępnia specjalne metody wstawiania każdego typu pola formularza do dokumentu: InsertTextInput, InsertCheckBox i InsertComboBox. Pamiętaj, że jeśli określisz nazwę pola formularza, automatycznie utworzona zostanie zakładka o tej samej nazwie.
Poniższy przykład kodu pokazuje, jak wstawić pole formularza combobox do dokumentu:
// 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); |
Wstaw wprowadzany tekst
Użyj metody InsertTextInput, aby wstawić pole tekstowe do dokumentu.
Poniższy przykład kodu pokazuje, jak wstawić pole formularza wprowadzania tekstu do dokumentu:
// 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); |
Wstaw pole wyboru
Wywołaj InsertCheckBox, aby wstawić pole wyboru do dokumentu.
Poniższy przykład kodu pokazuje, jak wstawić pole formularza pola wyboru do dokumentu:
// 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); |
Wstaw pole kombi
Wywołaj InsertComboBox, aby wstawić combobox do dokumentu.
Poniższy przykład kodu pokazuje, jak wstawić pole formularza Combobox do dokumentu:
// 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); |
Uzyskaj pola formularza
Zbiór pól formularzy jest reprezentowany przez klasę FormFieldCollection, którą można pobrać za pomocą właściwości FormFields. Oznacza to, że możesz uzyskać pola formularzy zawarte w dowolnym węźle dokumentu, łącznie z samym dokumentem.
Poniższy przykład kodu pokazuje, jak uzyskać kolekcję pól formularza:
// 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; |
Możesz uzyskać określone pole formularza według jego indeksu lub nazwy.
Poniższy przykład kodu pokazuje, jak uzyskać dostęp do pól formularza:
// 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"]; |
Właściwości FormField umożliwiają pracę z nazwą, typem i wynikiem pola formularza.
Poniższy przykład kodu pokazuje, jak pracować z nazwą, typem i wynikiem pola formularza:
// 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; |
Formatuj pola formularza
Właściwość Font FormField umożliwia zastosowanie formatowania czcionki do całego pliku FormField, łącznie z wartością pola.
Poniższy przykład kodu pokazuje, jak zastosować formatowanie czcionki do 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"); |