.NET에서 Word 인덱스와 테이블을 사용하는 방법
.NET에서 Word 색인 및 표 작업 방법
이 가이드는 Aspose.Words FOSS for .NET를 사용하여 Word 문서가 자체 내용을 요약하기 위해 사용하는 필드 기반 참조 구조—목차, 알파벳 순 인덱스, 그리고 권위 표—를 삽입하고 구축하는 방법을 보여줍니다. 각각은 문서의 다른 위치에 있는 마커 필드에서 컴파일됩니다: FieldToc은 제목 기반 및 FieldTC 표시 항목을 컴파일하고, FieldIndex은 FieldXE 마커를 컴파일하며, FieldToa은 FieldTA 인용을 컴파일합니다. 이 계열의 모든 필드 클래스는 Aspose.Words.Fields 네임스페이스의 기본 Field 유형에서 파생됩니다.
단계별 가이드
단계 1: 목차 삽입
목차가 표시될 위치에서 DocumentBuilder.InsertTableOfContents(switches)을 호출하고, Word 스타일 필드 스위치 문자열(예: "\o \"1-3\" \h \z \u")을 전달하여 포함할 제목 수준 및 결과 형식을 제어합니다. 이는 UI를 통해 목차를 삽입할 때 Word가 사용하는 동일한 스위치와 같습니다. 이렇게 하면 FieldToc가 삽입되며, 동일한 구조를 속성으로 직접 노출합니다: 포함된 개요 수준에 대해 HeadingLevelRange/EntryLevelRange, InsertHyperlinks, PreserveTabs/PreserveLineBreaks, 및 BookmarkName. 목차 대신 그림 목록을 만들려면 동일한 FieldToc에 TableOfFiguresLabel 또는 CaptionlessTableOfFiguresLabel을 설정하십시오.
단계 2: 사용자 지정 목차 항목 표시
목차에 포함되어야 할 모든 항목이 제목 스타일에서 오는 것은 아닙니다. FieldTC를 특정 위치에 삽입하여 단락 스타일과 무관하게 목차 항목으로 표시하십시오: FieldTC.Text은 항목 텍스트이며, EntryLevel는 표시될 개요 수준이고, OmitPageNumber은 해당 항목의 페이지 번호를 숨깁니다. 문서에 두 개 이상의 목차가 필요할 경우(예: 메인 목차와 별도의 그림 목록) FieldTC.TypeIdentifier를 수집해야 할 FieldToc의 EntryIdentifier와 일치하도록 설정하십시오.
3단계: 표시된 항목으로 색인 만들기
색인에 포함될 각 위치를 FieldXE로 표시하고, Text을 항목 텍스트로 설정합니다; EntryType는 콜론으로 구분된 구문을 사용해 항목을 하위 수준으로 그룹화하고, PageRangeBookmarkName은 색인에서 단일 페이지 번호가 아니라 페이지 범위가 되도록 북마크의 범위를 표시합니다. FieldIndex는 문서 내 모든 FieldXE 마커를 알파벳 순 결과로 컴파일합니다 — Heading을 설정하여 문자-헤딩 구분자(A, B, C…)를 삽입하고, LetterRange을 사용해 색인을 알파벳의 일부로 제한하며, RunSubentriesOnSameLine으로 하위 항목 레이아웃을 제어합니다. PageNumberSeparator, PageRangeSeparator, SequenceSeparator, 및 CrossReferenceSeparator는 항목과 페이지 참조 사이의 구두점을 제어합니다. Word의 내장 색인 시각 스타일은 FieldIndexFormat 열거형(Template, Classic, Fancy, Modern, Bulleted, Formal, Simple)으로 제공됩니다.
4단계: 인용문으로 권위 표 만들기
텍스트의 각 인용을 FieldTA로 표시합니다: LongCitation과 ShortCitation는 인용 텍스트를 보관하고, EntryCategory은 이를 “Cases” 또는 “Statutes"와 같은 제목 아래에 그룹화합니다, 그리고 IsBold/IsItalic는 형식을 제어합니다. FieldToa은 이러한 인용을 표로 컴파일합니다 — EntryCategory은 컴파일할 범주를 선택하고, UseHeading은 범주 제목의 표시 여부를 제어하며, UsePassim는 여러 번 인용된 출처에 대해 “passim” 규칙을 적용하고, PageRangeSeparator/PageNumberListSeparator/SequenceSeparator/EntrySeparator/RemoveEntryFormatting는 레이아웃을 제어합니다.
5단계: 문서 변경 후 필드 새로 고침
목차, 색인 또는 권위 표는 주변 내용이 변경되어도 자동으로 업데이트되지 않습니다. 특정 필드에 대해 Update()를 호출하십시오 — 예를 들어 FieldToc.Update() — 이렇게 하면 결과가 다시 계산되고, 페이지 번호 부분만 새로 고쳐야 할 경우에는 FieldToc.UpdatePageNumbers()를 사용합니다. 문서의 모든 필드를 한 번에 새로 고치려면 Document.UpdateFields()를 호출하십시오. 페이지 레이아웃 및 페이지 매김이 포함되지 않으므로 이 판에서 이러한 필드의 결과에 나타나는 페이지 번호는 자리 표시자 값으로 평가된다는 점을 기억하십시오.
6단계: 다른 문서에서 항목 포함하기
FieldRD을(를) 삽입하면 TOC, 색인 또는 권한 표가 컴파일 시 다른 파일에서 항목을 가져옵니다. FieldRD.FileName은(는) 참조된 문서의 이름을 지정하고, IsPathRelative는(은) 해당 경로가 현재 문서를 기준으로 상대적인지 여부를 제어합니다. 추가 문서마다 FieldRD을(를) 하나씩 추가하고, 컴파일 필드를 이후에 업데이트하여 결합된 결과에 참조된 내용이 포함되도록 합니다.
일반적인 문제 및 해결책
목차에 예상된 헤딩이 포함되지 않습니다. 목차의 스위치 문자열(또는 HeadingLevelRange) 해당 개요 레벨을 제외합니다. 전달되는 스위치를 조정하십시오 InsertTableOfContents, 또는 설정하십시오 FieldToc.HeadingLevelRange 직접.
색인 항목이 예상 위치에 나타나지 않습니다. 해당 FieldXE 마커가 없거나, 그 EntryType 하위 수준 구문이 일치하지 않습니다 FieldIndex 예상합니다. FieldXE 마커가 존재하고 그 EntryType 값이 일관되게 포맷됩니다.
필드 결과가 콘텐츠를 편집한 후 오래된 것처럼 보입니다. 편집 후 필드가 업데이트되지 않았습니다. 호출 Update() 특정 필드에 대해, 또는 Document.UpdateFields() 한 번에 모든 필드를 새로 고칩니다.
다른 문서의 항목은 컴파일 시 포함되지 않습니다. 아니오 FieldRD 해당 문서를 참조하고 있거나, IsPathRelative 경로가 해결되는 방식과 일치하지 않습니다. 추가하십시오 FieldRD 올바른 FileName and IsPathRelative 설정.
자주 묻는 질문
목차를 프로그래밍 방식으로 삽입하려면 어떻게 해야 하나요?
목차가 표시될 위치에서 DocumentBuilder.InsertTableOfContents(switches)를 Word 스타일 스위치 문자열(예: "\o \"1-3\" \h \z \u")과 함께 호출합니다.
텍스트를 색인 항목으로 표시하려면 어떻게 해야 하나요?
해당 위치에 FieldXE 필드를 삽입하고, 그 Text 속성을 항목 텍스트로 설정합니다; FieldIndex는 문서 내 모든 FieldXE 마커를 모아 색인 결과를 만듭니다.
FieldTC와 제목 기반 목차 항목의 차이점은 무엇인가요?
Word의 기본 목차 동작은 제목 스타일을 사용하는 단락에서 항목을 수집합니다. FieldTC는 단락 스타일과 무관하게 임의의 위치를 목차 항목으로 표시하며, FieldToc는 일치하는 EntryIdentifier/TypeIdentifier 값을 통해 이를 포함할 수 있습니다.
문서가 변경된 후 목차나 색인을 새로 고치려면 어떻게 해야 하나요?
특정 필드에 Update()를 호출하거나(페이지 번호만을 위해 FieldToc에 UpdatePageNumbers()를 사용할 수 있음), 문서의 모든 필드를 새로 고치려면 Document.UpdateFields()를 호출합니다.
목차나 색인을 여러 문서에 걸쳐 컴파일할 수 있나요?
예 — FieldRD을 삽입하고 FileName을 통해 각 추가 문서를 가리키세요. 컴파일 필드(FieldToc, FieldIndex, 또는 FieldToa)는 업데이트되면 참조된 문서의 항목을 포함합니다.