목차 작업
종종 목차(TOC)가 포함 된 문서로 작업합니다. Aspose.Words을 사용하면 자신의 목차를 삽입하거나 몇 줄의 코드만 사용하여 문서의 기존 목차를 완전히 다시 작성할 수 있습니다.
이 문서에서는 목차 필드를 사용하는 방법을 설명하고 다음을 보여 줍니다:
- 새로운TOC을 삽입하는 방법.
- 문서에서 새TOCs또는 기존TOCs을 업데이트합니다.
- 스위치를 지정하여TOC의 서식 및 전체 구조를 제어합니다.
- 목차의 스타일 및 모양을 수정하는 방법.
- 문서의 모든 항목과 함께 전체
TOC
필드를 제거하는 방법.
프로그래밍 방식으로 목차 삽입
InsertTableOfContents메서드를 호출하여 현재 위치에 있는 문서에TOC
(목차)필드를 삽입할 수 있습니다.
워드 문서의 목차는 여러 가지 방법으로 만들어지고 다양한 옵션을 사용하여 포맷될 수 있습니다. 메서드에 전달하는 필드 스위치는 테이블이 작성되고 문서에 표시되는 방식을 제어합니다.
Microsoft Word에 삽입된TOC
에 사용되는 기본 스위치는**"\o “1-3 \h \z \u”**입니다. 이러한 스위치에 대한 설명과 지원되는 스위치 목록은 기사의 뒷부분에서 찾을 수 있습니다. 이 가이드를 사용하여 올바른 스위치를 가져오거나 원하는 유사한TOC
이 포함된 문서가 이미 있는 경우 필드 코드(*ALT+F9*)를 표시하고 필드에서 직접 스위치를 복사할 수 있습니다.
다음 코드 예제에서는 목차 필드를 문서에 삽입하는 방법을 보여 줍니다:
다음 코드 예제에서는 제목 스타일을 항목으로 사용하여 목차(TOC)를 문서에 삽입하는 방법을 보여 줍니다:
이 코드는 새 목차가 빈 문서에 삽입되었음을 보여줍니다. DocumentBuilder클래스는TOC에 포함될 콘텐츠를 표시하는 데 사용되는 적절한 제목 스타일로 샘플 콘텐츠 서식을 삽입하는 데 사용됩니다. 다음 줄은 문서의 필드와 페이지 레이아웃을 업데이트하여TOC
을 채 웁니다.
TOC
필드가 있지만 내용이 보이지 않습니다. TOC
필드가 삽입되었지만 문서에서 업데이트될 때까지 채워지지 않기 때문입니다. 이에 대한 자세한 내용은 다음 섹션에서 설명합니다.
목차 업데이트
Aspose.Words을 사용하면 몇 줄의 코드 만 사용하여TOC
을 완전히 업데이트 할 수 있습니다. 이 작업은 새로 삽입된TOC
을 채우거나 문서를 변경한 후 기존TOC
을 업데이트하기 위해 수행할 수 있습니다.
문서의TOC
필드를 업데이트하려면 다음 두 가지 방법을 사용해야 합니다:
이 두 가지 업데이트 메서드는 해당 순서로 호출해야 합니다. 반전되면 목차가 채워지지만 페이지 번호는 표시되지 않습니다. 다른TOCs의 수는 업데이트 할 수 있습니다. 이러한 메서드는 문서에 있는 모든TOCs을 자동으로 업데이트합니다.
다음 코드 예제에서는 필드 업데이트를 호출하여 문서에서TOC
필드를 완전히 다시 작성하는 방법을 보여 줍니다:
Document.updateFields()에 대한 첫 번째 호출은TOC
을 빌드하고 모든 텍스트 항목이 채워지고TOC
이 거의 완료되어 나타납니다. 누락 된 유일한 것은 지금"?“로 표시되는 페이지 번호입니다.
Document.updatePageLayout()에 대한 두 번째 호출은 메모리에 문서의 레이아웃을 빌드합니다. 이 항목의 페이지 번호를 수집 할 필요가있다. 이 호출에서 계산된 올바른 페이지 번호는TOC에 삽입됩니다.
스위치를 사용하여 목차 동작 제어
다른 필드와 마찬가지로TOC
필드는 목차 작성 방법을 제어하는 필드 코드 내에 정의된 스위치를 사용할 수 있습니다. 특정 스위치는 어떤 항목이 포함되고 어떤 수준에서 제어되는 반면 다른 스위치는TOC의 모양을 제어하는 데 사용됩니다. 스위치는 복잡한 내용 테이블을 생성 할 수 있도록 함께 결합 될 수 있습니다.
기본적으로 위의 스위치는 문서에 기본 TOC
을 삽입할 때 포함됩니다. 스위치가 없는 TOC
은 내장된 제목 스타일의 콘텐츠를 포함합니다(마치 \O 스위치가 설정된 것처럼).
Aspose.Words에서 지원하는 사용 가능한TOC
스위치는 아래에 나열되어 있으며 그 용도에 대해 자세히 설명합니다. 유형에 따라 별도의 섹션으로 나눌 수 있습니다. 첫 번째 섹션의 스위치는TOC
에 포함할 콘텐츠를 정의하고 두 번째 섹션의 스위치는TOC의 모양을 제어합니다.
스위치가 여기에 나열되지 않으면 현재 지원되지 않습니다. 모든 스위치는 향후 버전에서 지원됩니다. 우리는 모든 릴리스에 추가 지원을 추가하고 있습니다.
입장 표하기 스위치
스위치 | 설명 |
---|---|
Heading Styles (\오 스위치) |
이 스위치는
|
Outline Levels (\U 스위치) |
각 단락은 단락 옵션에서 개요 수준을 정의할 수 있습니다.
Heading 1과 같은 기본 제공 제목 스타일에는 스타일 설정에서 개요 수준 필수 설정이 있습니다.
|
Custom Styles (\T 스위치) |
이 스위치를 사용하면TOC에서 사용할 항목을 수집 할 때 사용자 정의 스타일을 사용할 수 있습니다. 이것은TOC에 내장된 제목 스타일과 함께 사용자 정의 스타일을 포함하기 위해\오 스위치와 함께 자주 사용됩니다.
|
TC필드 사용 (\에프\엘 스위치) |
Microsoft Word의 이전 버전에서 이러한 필드는 다른 필드와 마찬가지로 임의의 위치에서 문서에 삽입할 수 있으며
다음과 같은TC필드만 포함됩니다
–\에프-위에서 설명했다. –\엘- - |
외관 관련 스위치
스위치 | 설명 |
---|---|
Omit Page Numbers (\엔 스위치) |
이 스위치는TOC의 특정 수준에 대한 페이지 번호를 숨기는 데 사용됩니다. 예를 들어 다음을 정의할 수 있습니다
그리고 레벨 3 과 4 의 항목에있는 페이지 번호는 리더 점과 함께 숨겨집니다(있는 경우). 한 수준만 지정하려면 범위가 여전히 사용되어야 합니다.예를 들어"1-1"은 첫 번째 수준에 대한 페이지 번호만 제외합니다. |
하이퍼링크로 삽입 (\시간 스위치) |
이 스위치는 |
Set Separator Character (\피 스위치) |
이 스위치를 사용하면TOC에서 항목 제목과 페이지 번호 매기기를 분리하는 내용을 쉽게 변경할 수 있습니다. 사용할 구분 기호는 이 스위치 뒤에 지정하고 음성 표시로 묶어야 합니다. |
Preserve Tab Entries (\W 스위치) |
이 스위치를 사용하면TOC를 채울 때 탭 문자가 있는 항목(예:줄 끝에 탭이 있는 제목)이 적절한 탭 문자로 유지되도록 지정할 수 있습니다. 이것은 탭 문자의 기능이 |
Preserve New Line Entries (\엑스 스위치) |
위의 스위치와 유사하게, 이 스위치는 여러 줄에 걸쳐 있는 제목(줄바꿈 문자 사용, 별도의 문단 사용 안 함)이 생성된 TOC에 있는 그대로 유지되도록 지정합니다. 예를 들어, 여러 줄에 걸쳐 있는 제목은 줄바꿈 문자(Ctrl + Enter 또는 |
TC필드 삽입
DocumentBuilder.InsertField
메서드를 호출하고 필요한 스위치와 함께 필드 이름을"TC"로 지정하여DocumentBuilder
의 현재 위치에 새TC필드를 삽입할 수 있습니다.
다음 코드 예제에서는DocumentBuilder을 사용하여TC
필드를 문서에 삽입하는 방법을 보여 줍니다.
종종 특정 텍스트 줄이TOC
에 지정되고TC
필드로 표시됩니다. MS단어에서이 작업을 수행하는 쉬운 방법은 텍스트를 강조 표시하고ALT+SHIFT+O을 누르는 것입니다. 그러면 선택한 텍스트를 사용하여TC
필드가 자동으로 생성됩니다. 코드를 통해 동일한 기술을 수행 할 수 있습니다. 아래 코드는 입력과 일치하는 텍스트를 찾아 텍스트와 같은 위치에TC
필드를 삽입합니다. 이 코드는 기사에 사용 된 것과 동일한 기술을 기반으로합니다. 다음 코드 예제에서는 문서의 텍스트에TC
필드를 찾아서 삽입하는 방법을 보여 줍니다.
목차 수정
스타일 서식 변경
TOC
의 항목의 포맷은 표시된 항목의 원래 스타일을 사용하지 않고,대신 각 레벨은 동등한TOC
스타일을 사용하여 포맷됩니다. 예를 들어,TOC
의 첫 번째 레벨은TOC1스타일로 포맷되고,두 번째 레벨은TOC2스타일로 포맷됩니다. 즉,TOC
의 모양을 변경하려면 이러한 스타일을 수정해야 합니다. Aspose.Words에서 이러한 스타일은StyleIdentifier.TOC1
에서StyleIdentifier.TOC9
까지의 로캘 독립으로 표시되며 이러한 식별자를 사용하여Document.Styles
컬렉션에서 검색할 수 있습니다.
문서의 적절한 스타일이 검색되면 이 스타일의 서식을 수정할 수 있습니다. 이러한 스타일에 대한 변경 사항은 문서의TOCs에 자동으로 반영됩니다.
다음 코드 예제에서는 첫 번째 수준TOC
스타일에 사용되는 서식 속성을 변경합니다.
또한TOC
에 포함되도록 표시된 단락(스타일이 아닌 단락 자체에 정의됨)의 모든 직접 서식이TOC의 항목에 복사된다는 점에 유의하는 것이 유용합니다. 예를 들어,Heading 1스타일이TOC
의 내용을 표시하는 데 사용되고 이 스타일은 굵게 서식이 있는 반면 단락에는 이탤릭체 서식이 직접 적용된 경우. 결과TOC
항목은 스타일 서식의 일부이기 때문에 굵게 표시되지 않지만 단락에서 직접 서식이 지정되므로 기울임 꼴로 표시됩니다.
또한 각 항목과 페이지 번호 사이에 사용되는 구분 기호의 서식을 제어할 수 있습니다. 기본적으로,이것은 탭 문자를 사용하여 페이지 번호 매기기에 걸쳐 퍼져있는 점선이며 오른쪽 여백에 가까운 오른쪽 탭 스톱이 줄지어 있습니다.
수정할 특정TOC
수준에 대해 검색된Style
클래스를 사용하여 문서에 표시되는 방법을 수정할 수도 있습니다.
이 먼저 나타나는 방법을 변경하려면Style.ParagraphFormat
스타일에 대한 단락 서식을 검색하기 위해 호출해야합니다. 이로부터ParagraphFormat.TabStops
을 호출하여 탭 정지를 검색하고 적절한 탭 정지를 수정할 수 있습니다. 이 같은 기술을 사용하여 탭 자체를 이동하거나 완전히 제거 할 수 있습니다.
다음 코드 예제에서는TOC
관련 단락에서 오른쪽 탭 정지 위치를 수정하는 방법을 보여 줍니다.
문서에서 목차 제거
TOC
필드의FieldStart
과FieldEnd노드 사이에 있는 모든 노드를 제거하여 문서에서 목차를 제거할 수 있습니다.
아래 코드는 이것을 보여줍니다. TOC
필드의 제거는 일반적인 필드보다 간단합니다.왜냐하면 우리는 둥글게 된 필드를 추적하지 않기 때문입니다. 대신,우리는FieldEnd
노드가FieldType.FieldTOC
유형인지 확인합니다.이것은 우리가 현재TOC의 끝을 만났다는 것을 의미합니다. 이 기술은 이 경우 어떤 내장된 필드도 걱정하지 않고 사용할 수 있습니다.왜냐하면 우리는 어떤 제대로 형성된 문서에도 다른TOC
필드 안에 완전히 내장된TOC
필드가 없다고 가정할 수 있기 때문입니다.
먼저 각TOC
의FieldStart
노드가 수집되고 저장됩니다. 그런 다음 지정된TOC
이 열거되어 필드 내의 모든 노드가 방문되고 저장됩니다. 그런 다음 노드가 문서에서 제거됩니다. 다음 코드 예제에서는 지정된TOC
을 문서에서 제거하는 방법을 보여 줍니다.
목차 추출
워드 문서에서 목차를 추출하려면 다음 코드 샘플을 사용할 수 있습니다.