FieldBuilder를 사용한 필드 구축
FieldBuilder을(를) 사용하여 필드 만들기
이 가이드는 Aspose.Words FOSS에서 .NET용 Word 필드를 처음부터 구축하는 방법을 보여줍니다 using FieldBuilder and FieldArgumentBuilder, 문서에 이미 존재하는 필드와 작업하는 대신에. 기존 필드를 읽기, 업데이트 또는 제거하려면, 다음을 참조하십시오. 필드 작업 가이드.
FieldBuilder으로 필드 만들기
FieldBuilder은(는) 필드 코드 토큰(인수와 스위치)으로부터 필드를 생성합니다. new FieldBuilder(fieldType)을(를) 사용해 원하는 필드의 FieldType을(를) 전달하여 생성합니다. 인수는 오버로드된 AddArgument(argument) 메서드로 추가할 수 있으며, 이 메서드는 string, int, double, 중첩된 FieldBuilder, 또는 FieldArgumentBuilder을(를) 받아들입니다. 스위치는 오버로드된 AddSwitch(switchName), AddSwitch(switchName, switchArgument)(string), 또는 AddSwitch(switchName, switchArgument)(int/double) 메서드로 추가합니다.
구축된 필드 삽입
FieldBuilder에 인수와 스위치가 모두 설정되면, BuildAndInsert(refNode)을 호출하여 문서에 삽입합니다 — 하나의 오버로드는 Inline 노드를 받아 그 앞에 필드를 삽입하고, 다른 오버로드는 Paragraph을 받아 해당 단락의 끝에 필드를 삽입합니다.
FieldArgumentBuilder을(를) 사용하여 복합 인수 구성
FieldArgumentBuilder은(는) 필드, 노드, 일반 텍스트로 구성된 복합 필드 인수를 생성합니다. 단일 인수가 단순 문자열보다 더 필요할 때 사용합니다. new FieldArgumentBuilder()으로 하나를 만들고, AddText(text)를 호출하여 일반 텍스트를 추가하고, AddNode(node)를 호출하여 Inline 노드를 추가하거나, AddField(fieldBuilder)를 사용하여 다른 필드(자신만의 FieldBuilder으로 구축)를 인수 안에 중첩합니다. 완성된 FieldArgumentBuilder을 FieldBuilder.AddArgument(argument)에 전달하여 외부 필드의 인수 중 하나로 사용합니다.
팁 및 모범 사례
FieldBuilder은(는) 전용 필드 클래스 중 하나(FieldDate또는FieldSymbol등)로 지원되지 않는 필드 유형을 구성할 때, 또는 데이터를 기반으로 필드 코드를 프로그래밍 방식으로 생성하고 수동으로 작성하지 않을 때 사용합니다.- 간단한 경우에는
FieldBuilder.AddArgument(FieldBuilder)을 사용하여 외부 필드 인수 안에 자식 필드를 중첩하고, 인수가 단일 필드 이상일 때는FieldArgumentBuilder을 사용하여 텍스트, 노드 및 중첩 필드가 혼합된 인수를 구축합니다. - 필드가 위치해야 할 위치에 맞는
BuildAndInsert(refNode)오버로드를 선택하세요 — 특정Inline노드 앞이나Paragraph끝에. BuildAndInsert후에는 결과를 트리의 다른 필드와 동일하게 취급합니다 — 예를 들어, 필드 유형에 명시적 재계산이 필요하면Update()을 호출합니다.
일반적인 문제
| 문제 | 원인 | 해결 방법 |
|---|---|---|
BuildAndInsert가 잘못된 위치를 가리키고 있습니다 | 의도된 삽입 지점에 잘못된 오버로드가 사용되었습니다. | Inline 노드를 전달하여 그 앞에 삽입하거나, Paragraph을 전달하여 끝에 삽입합니다. |
| 필드 인자는 일반 텍스트와 노드를 동시에 받을 수 없습니다. | AddArgument가 복합 인자가 아닌 단일 string/int/double으로 호출되었습니다. | FieldArgumentBuilder (AddText, AddNode, AddField)를 사용하여 혼합 인자를 만든 뒤, 이를 AddArgument에 전달하십시오. |
| 구성된 필드 코드에서 스위치 값이 인식되지 않습니다. | 스위치가 실제로 인자를 필요로 하는데 AddSwitch(switchName)가 사용되었습니다. | 스위치의 문자열, 정수 또는 실수 값을 사용하여 AddSwitch(switchName, switchArgument) 오버로드를 이용하십시오. |
FAQ
언제 FieldBuilder을 사용하고 미리 만든 필드 코드를 삽입하는 대신에 사용해야 하나요?
프로그래밍 방식으로 필드를 구성하면서 필드의 인수와 스위치를 명시적으로 제어해야 할 경우, 미리 만든 필드 코드 문자열을 삽입하는 대신 FieldBuilder을 사용하십시오.
필드에 하나 이상의 인수를 어떻게 추가합니까?
AddArgument을 인수당 한 번 호출하십시오 — string, int, double, 중첩된 FieldBuilder, 그리고 FieldArgumentBuilder에 대해 오버로드됩니다.
인수에 텍스트와 다른 필드가 혼합된 필드를 만들 수 있나요?
예 — 필요에 따라 AddText, AddNode, AddField을 호출하면서 FieldArgumentBuilder을 사용하고, 그런 다음 FieldBuilder.AddArgument에 전달하십시오.
구축한 필드를 실제로 문서에 어떻게 넣나요?
BuildAndInsert(refNode)을 호출하고, Inline 노드(그 앞에 삽입) 또는 Paragraph(그 끝에 삽입) 중 하나를 전달하십시오.
API Reference 요약
| 클래스/메서드 | 설명 |
|---|---|
FieldBuilder | 필드 코드 토큰(인수 및 스위치)으로부터 필드를 구축합니다 |
FieldBuilder(fieldType) | 구축할 FieldType을(를) 받는 생성자 |
FieldBuilder.AddArgument(argument) | 인수(string, int, double, FieldBuilder, 또는 FieldArgumentBuilder)를 추가합니다 |
FieldBuilder.AddSwitch(switchName) / AddSwitch(switchName, switchArgument) | 값이 있든 없든 필드 스위치를 추가합니다 |
FieldBuilder.BuildAndInsert(refNode) | 구축된 필드를 Inline 노드 앞에 삽입하거나 Paragraph 끝에 삽입합니다 |
FieldArgumentBuilder | 텍스트, 노드 및 중첩 필드로부터 복합 필드 인수를 구성합니다 |
FieldArgumentBuilder.AddText(text) | 인수에 일반 텍스트를 추가합니다 |
FieldArgumentBuilder.AddNode(node) | 인수에 Inline 노드를 추가합니다 |
FieldArgumentBuilder.AddField(fieldBuilder) | 인수에 FieldBuilder가 만든 필드를 중첩합니다 |