양식 필드 작업

채우기 공백(필드)이 포함된 문서를 양식이라고 합니다. 예를 들어, 사용자가 항목을 선택할 수 있는 드롭다운 목록을 사용하는 Microsoft Word 등록 양식을 만들 수 있습니다. Form 필드는 이름이나 주소와 같은 특정 유형의 데이터가 저장되는 위치입니다. Microsoft Word의 양식 필드에는 텍스트 입력, 콤보 상자 및 확인란이 포함됩니다.

프로젝트의 양식 필드를 사용하여 사용자와 “소통"할 수 있습니다. 예를 들어, 내용은 보호되지만 양식 필드만 편집할 수 있는 문서를 생성합니다. 사용자는 양식 필드에 데이터를 입력하고 문서를 제출할 수 있습니다. Aspose.Words를 사용하는 애플리케이션은 양식 필드에서 데이터를 검색하고 처리할 수 있습니다.

코드를 통해 문서에 양식 필드를 배치하는 것은 쉽습니다. DocumentBuilder에는 각 양식 필드 유형마다 하나씩 삽입하는 특별한 방법이 있습니다. 각 메소드는 양식 필드의 이름을 나타내는 문자열 매개변수를 허용합니다. 이름은 빈 문자열일 수 있습니다. 그러나 양식 필드에 이름을 지정하면 동일한 이름으로 책갈피가 자동으로 생성됩니다.

양식 필드 삽입

양식 필드는 사용자와의 “상호작용"을 허용하는 Word 필드의 특별한 경우입니다. Microsoft Word의 양식 필드에는 텍스트 상자, 콤보 상자 및 확인란이 포함됩니다.

DocumentBuilder는 각 유형의 양식 필드(InsertTextInput, InsertCheckBoxInsertComboBox)를 문서에 삽입하는 특별한 방법을 제공합니다. 양식 필드에 이름을 지정하면 동일한 이름으로 책갈피가 자동으로 생성됩니다.

다음 코드 예제에서는 콤보 상자 양식 필드를 문서에 삽입하는 방법을 보여줍니다

// 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);

텍스트 입력 삽입

InsertTextInput 메서드를 사용하여 문서에 텍스트 상자를 삽입합니다.

다음 코드 예제에서는 텍스트 입력 양식 필드를 문서에 삽입하는 방법을 보여줍니다

// 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);

체크박스 삽입

문서에 체크박스를 삽입하려면 InsertCheckBox를 호출하세요.

다음 코드 예제에서는 확인란 양식 필드를 문서에 삽입하는 방법을 보여줍니다

// 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);

콤보 상자 삽입

문서에 콤보박스를 삽입하려면 InsertComboBox를 호출하세요.

다음 코드 예제에서는 콤보 상자 양식 필드를 문서에 삽입하는 방법을 보여줍니다

// 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);

양식 필드 얻기

양식 필드 컬렉션은 FormFields 속성을 사용하여 검색할 수 있는 FormFieldCollection 클래스로 표시됩니다. 이는 문서 자체를 포함하여 모든 문서 노드에 포함된 양식 필드를 얻을 수 있음을 의미합니다.

다음 코드 예제에서는 양식 필드 컬렉션을 가져오는 방법을 보여줍니다

// 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;

색인이나 이름으로 특정 양식 필드를 가져올 수 있습니다.

다음 코드 예제에서는 양식 필드에 액세스하는 방법을 보여줍니다

// 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"];

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 + "FormFields.doc");
FormField formField = doc.Range.FormFields[3];
if (formField.Type.Equals(FieldType.FieldFormTextInput))
formField.Result = "My name is " + formField.Name;

양식 필드 형식 지정

FormFieldFont 속성을 사용하면 필드 값을 포함하여 FormField 전체에 글꼴 형식을 적용할 수 있습니다.

다음 코드 예제에서는 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");