섹션 작업
섹션 작업
Word 문서는 하나 이상의 섹션으로 나뉘며, 각 섹션은 자체 페이지 설정, 여백, 머리글 및 바닥글을 가집니다. Aspose.Words FOSS for .NET 섹션을 다음과 같이 나타냅니다: Section 노드, 포함하는 Body 그리고 선택적으로 머리글 및 바닥글을 포함하며, 추가로 PageSetup 그것의 레이아웃을 제어합니다. 이 페이지에서는 섹션 객체 모델, 페이지 설정, 머리글 및 바닥글, 그리고 다중 열 텍스트 레이아웃을 다룹니다.
섹션 객체 모델
Document.Sections은 SectionCollection을 반환합니다 – 문서의 모든 Section이며, 각각은 CompositeNode이고 노드 트리의 일부입니다. Section는 하나의 Body를 포함합니다(섹션의 주요 단락 및 표를 보유하는 Story) 그리고 존재할 경우 Section.HeadersFooters을 통해 접근 가능한 HeaderFooter 노드, 즉 HeaderFooterCollection를 포함합니다. Document.FirstSection와 Document.LastSection은 경계 섹션에 직접 접근하게 합니다. Section.AppendContent(), PrependContent(), ClearContent()는 섹션 본문의 내용을 일괄적으로 조작하고, ClearHeadersFooters()와 DeleteHeaderFooterShapes()는 머리글/바닥글 내용을 삭제합니다.
섹션 및 섹션 구분 만들기
DocumentBuilder.InsertBreak(BreakType)은 커서 위치에 구분을 삽입합니다; BreakType은 새 섹션을 시작하기 위해 SectionBreakNewPage, SectionBreakContinuous, SectionBreakNewColumn, SectionBreakEvenPage, SectionBreakOddPage을 포함하고, 섹션이 아닌 값인 PageBreak, ColumnBreak, LineBreak, ParagraphBreak도 함께 포함합니다. DocumentBuilder.MoveToSection()은 커서를 특정 섹션 본문의 시작으로 이동시킵니다. PageSetup.SectionStart는 기존 섹션에 기록된 SectionStart 구분 유형을 읽거나 설정합니다.
페이지 설정
Section.PageSetup은(는) 페이지 차원 및 여백(PageWidth, PageHeight, TopMargin, BottomMargin, LeftMargin, RightMargin, Gutter)을 포함하는 PageSetup 인스턴스이며, Orientation와 PaperSize, 그리고 각 면 페이지 경계(Borders, BorderAppliesTo via PageBorderAppliesTo, BorderDistanceFrom via PageBorderDistanceFrom, BorderAlwaysInFront, BorderSurroundsHeader, BorderSurroundsFooter)를 다룹니다. 행 번호 매기기는 LineNumberRestartMode, LineNumberCountBy, LineNumberDistanceFromText, LineStartingNumber에 의해 제어됩니다. PageSetup.ClearFormatting()은(는) 이를 기본값으로 재설정합니다.
머리글 및 바닥글
Section.HeadersFooters은(는) HeaderFooterCollection이며, 타입이 지정된 접근자 – HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven – 와 함께 GetByHeaderFooterType(), Add(), LinkToPrevious()도 포함합니다. 각 HeaderFooter은 Story(예: Body)이며, HeaderFooterType로 식별되고 IsHeader / IsLinkedToPrevious 플래그가 지정됩니다. PageSetup.DifferentFirstPageHeaderFooter와 PageSetup.OddAndEvenPagesHeaderFooter은 Word가 첫 페이지 및 짝수 페이지 머리글/바닥글 변형을 사용할지 여부를 제어합니다.
다중 텍스트 열
PageSetup.TextColumns은(는) TextColumnCollection(Count, EvenlySpaced, LineBetween, Spacing, Width)을 반환하며, SetCount()을 사용하여 섹션 본문을 다중 열로 배치합니다. 컬렉션에 두 개 이상의 열이 채워지면 개별 열은 TextColumn 인스턴스(Width, SpaceAfter)가 됩니다.
팁 및 모범 사례
- 섹션 구분은 해당 섹션에 대한 서식을 전달합니다 follows 그것을 – 설정
PageSetupa에 대한 속성Section방금 만든 (이후InsertBreak)는 구분자 이후에 오는 콘텐츠에 영향을 미치며, 이전에는 영향을 주지 않습니다. - 새 페이지를 시작하지 않고 페이지 설정만 변경해야 할 경우(예: 다중 열 텍스트로 전환)
SectionBreakContinuous을(를) 사용하고, 새 섹션이 항상 새 페이지에서 시작되어야 할 경우SectionBreakNewPage을(를) 사용하십시오. HeaderFooterCollection.LinkToPrevious()은(는) 섹션의 헤더/푸터를 이전 섹션의 내용을 상속하도록 다시 연결합니다 – 새 헤더/푸터 내용을 작성하기 전에 이 작업을 수행하면 새 섹션이 이전 섹션과 독립적으로 시작됩니다.PageSetup.DifferentFirstPageHeaderFooter와OddAndEvenPagesHeaderFooter은(는) 해당HeaderFooterType변형(HeaderFirst,HeaderEven등)이 실제로Section.HeadersFooters에 존재할 때만 적용됩니다 – 플래그를 활성화하고 해당 헤더/푸터를 함께 추가하세요.Section.Body와 각HeaderFooter은 별개의Story인스턴스입니다 –Range.Fields, 북마크 및 섹션의Body에 대한 기타 범위 기반 작업은 헤더와 푸터로 자동으로 전달되지 않습니다.
일반적인 문제
| 문제 | 원인 | 해결 방법 |
|---|---|---|
| 새 섹션의 페이지 설정이 제가 지정한 내용과 일치하지 않습니다. | PageSetup이(가) 잘못된 Section 인스턴스에 설정되었습니다 | 설정 PageSetup 해당 섹션에 follows 줄 바꿈이며, 앞의 것이 아닙니다 |
| 이전 섹션의 머리글/바닥글 내용이 새 섹션에 예기치 않게 나타납니다 | 새 섹션의 머리글/바닥글이 여전히 이전 섹션과 연결되어 있습니다 | 그들을 분리하려면 HeaderFooterCollection.LinkToPrevious(false)을(를) 호출하세요 (또는 별도의 머리글/바닥글 내용을 추가하세요) |
| 첫 페이지 또는 짝수 페이지 머리글/바닥글이 무시됩니다 | DifferentFirstPageHeaderFooter / OddAndEvenPagesHeaderFooter 은 false이며, 일치하는 HeaderFooterType 변형이 존재하지 않습니다 | PageSetup에 플래그를 설정하고 해당 헤더/푸터 변형이 존재하는지 확인하십시오 |
| 다중 열 레이아웃은 적용되지 않습니다 | TextColumns.SetCount()가 카운트 1로 호출되었거나, 잘못된 섹션의 PageSetup에서 호출되었습니다 | 대상 섹션의 PageSetup.TextColumns에 여러 열을 사용하여 SetCount()를 호출하십시오 |
FAQ
새 페이지를 시작하지 않고 새 섹션을 시작하려면 어떻게 해야 하나요?
SectionBreakContinuous 구분을 DocumentBuilder.InsertBreak(BreakType.SectionBreakContinuous)와 함께 삽입합니다.
섹션에 자체 여백과 방향을 지정하려면 어떻게 해야 하나요?
섹션 구분을 삽입한 다음, 새 섹션의 PageSetup – TopMargin, BottomMargin, LeftMargin, RightMargin, Orientation, 및 PaperSize 속성을 설정합니다.
섹션의 첫 페이지에 다른 헤더를 사용하려면 어떻게 해야 하나요?
해당 섹션에 PageSetup.DifferentFirstPageHeaderFooter = true을 설정하고, HeaderFirst 유형의 HeaderFooter (필요한 경우 FooterFirst)을 그 섹션의 HeadersFooters 컬렉션에 추가합니다.
섹션 본문의 텍스트를 두 열로 배치하려면 어떻게 해야 하나요?
섹션에 PageSetup.TextColumns.SetCount(2)을 호출한 다음, 필요에 따라 Spacing 및 EvenlySpaced / 개별 TextColumn.Width 값을 조정합니다.
API Reference 요약
| 클래스 / 열거형 | 설명 |
|---|---|
Section | 섹션 노드; Body, HeadersFooters, PageSetup |
SectionCollection | 문서 내 모든 Section를 Document.Sections를 통해 |
Body / Story | 섹션(Body) 또는 헤더/푸터(HeaderFooter)용 메인 콘텐츠 컨테이너 |
PageSetup | 섹션의 페이지 크기, 여백, 방향, 테두리 및 열 |
HeaderFooter / HeaderFooterCollection | 섹션의 헤더/푸터 내용과 타입이 지정된 접근자 |
HeaderFooterType | HeaderFooter가 어떤 헤더/푸터 변형(기본, 첫 번째, 짝수)인지 식별합니다 |
TextColumn / TextColumnCollection | 섹션의 다중 열 텍스트 레이아웃 |
PaperSize / Orientation / Margins | 페이지 크기, 방향 및 사전 설정 여백 값 |
PageBorderAppliesTo / PageBorderDistanceFrom | 페이지 테두리가 인쇄되는 페이지와 해당 기준 가장자리 |
SectionStart / BreakType | 섹션에 기록된 구역 구분 유형 및 DocumentBuilder.InsertBreak()이(가) 허용하는 구분 종류 |
LineNumberRestartMode | 섹션 내에서 자동 행 번호 매김이 재시작되는 시점 |