스타일 작업
스타일 작업하기
이 가이드는 문단, 문자, 표 및 목록 스타일을 사용하여 작업하는 방법을 보여줍니다 Aspose.Words FOSS for .NET — 기본 및 사용자 정의 스타일을 찾아 적용하고, 표 스타일에 대한 영역별 조건부 서식을 구성합니다.
A Style 객체는 단일 기본 제공 또는 사용자 정의 스타일을 나타냅니다 — 단락, 글꼴 및 목록 서식의 명명된 컬렉션으로, Word가 해당 스타일이 할당된 단락이나 실행에 적용합니다. 모든 문서는 Document.Styles 속성을 통해 스타일을 노출하며, 이 속성은 StyleCollection를 반환합니다. 표 스타일은 TableStyle으로 표현되며, 이는 Style의 하위 클래스로 표 전용 서식 및 ConditionalStyleCollection를 통한 영역별 조건부 서식을 추가합니다.
스타일 유형 및 식별
각 Style에는 StyleType 유형의 Type 속성이 있으며, 이는 Paragraph, Character, Table, List 중 하나입니다 — Word가 지원하는 네 가지 스타일 유형에 대응합니다. 기본 제공 스타일은 로케일에 독립적인 StyleIdentifier 열거형 값을 또한 가지고 있습니다(예: 제목, 강조, 하이퍼링크 스타일에 해당하는 값) 따라서 코드는 특정 언어의 표시 이름에 의존하지 않고 기본 제공 스타일을 조회할 수 있습니다. 스타일의 사람이 읽을 수 있는 이름은 Style.Name을 통해 얻을 수 있으며, Style.Aliases는 동일한 스타일에 대해 Word가 인식하는 대체 이름을 반환합니다. Style.BuiltIn은 스타일이 Word 자체에 포함되어 제공되는지, 문서에 정의된 것인지를 보고하고, Style.IsHeading은 해당 스타일이 기본 제공 제목 스타일 중 하나인지 여부를 보고합니다.
스타일 컬렉션에 접근하고 관리하기
StyleCollection은 문서에 연결된 모든 Style 객체(기본 제공 및 사용자 정의)의 컬렉션이며, Document.Styles를 통해 접근합니다. StyleCollection 인덱서를 사용하여 표시 이름으로 스타일을 검색할 수 있습니다 — styles[name] — 또는 동일한 인덱서를 사용하여 로케일에 독립적인 StyleIdentifier로 기본 제공 스타일을 검색할 수 있습니다 — styles[sti] — 이는 서로 다른 언어로 작성된 문서에서 이름 조회보다 더 신뢰할 수 있습니다. 새 스타일은 StyleCollection.Add(type, name)으로 생성하며, StyleType와 이름을 지정합니다. 기존 스타일은 StyleCollection.AddCopy(style)를 사용해 컬렉션에 복제할 수 있습니다. StyleCollection.Count은 문서가 보유한 스타일 수를 보고하고, 컬렉션은 또한 DefaultFont 및 DefaultParagraphFormat를 노출하여 명시적인 스타일이 적용되기 전에 새 콘텐츠가 상속받는 문서 전체 기본 서식을 설명합니다. StyleCollection.ClearQuickStyleGallery()은 스타일 자체를 삭제하지 않고 Word UI의 빠른 스타일 갤러리에서 모든 스타일을 제거합니다.
단락 및 실행에 스타일 적용
스타일을 가질 수 있는 서식 개체는 Style 속성( Style 객체 자체)과 StyleName 속성(이름으로 스타일을 해석하거나 생성하는 바로 가기) 두 가지를 노출합니다. ParagraphFormat.Style 및 ParagraphFormat.StyleName는 단락 스타일을 적용하고, Font.Style 및 Font.StyleName은 실행의 서식에 문자 스타일을 적용합니다. 스타일 자체의 LinkedStyleName, BaseStyleName, NextParagraphStyleName 속성은 다른 스타일과의 관계를 설명합니다: BaseStyleName은 서식이 설정되지 않은 상태를 상속받는 스타일의 이름을 지정하고, LinkedStyleName은 쌍을 이루는 단락/문자 스타일의 이름을 지정합니다(Word가 Heading 1과 그 연결된 문자 스타일과 같은 내장 스타일에 대해 수행하는 방식). NextParagraphStyleName는 이 스타일을 사용한 후 새 단락을 입력할 때 Word가 할당하는 스타일의 이름을 지정합니다.
표 스타일 및 조건부 서식
TableStyle은 Style을(를) Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment와 같은 테이블 레이아웃 속성 및 패딩(LeftPadding, RightPadding, TopPadding, BottomPadding)으로 확장합니다. 또한 RowStripe과 ColumnStripe는 밴딩 패턴이 반복되는 행 또는 열의 수를 제어합니다. 균일한 테이블 서식을 넘어서, TableStyle.ConditionalStyles은 각 테이블 영역당 하나의 ConditionalStyle를 보유하는 ConditionalStyleCollection를 반환합니다 — FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding 및 네 모서리 셀(TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). 각 ConditionalStyle는 자체 Font, ParagraphFormat, Shading, Borders 및 셀 패딩을 가지고 있으며, Type 속성은 해당 ConditionalStyleType 영역을 나타냅니다. ConditionalStyle.ClearFormatting()와 ConditionalStyleCollection.ClearFormatting()은 하나의 영역 또는 전체 조건부 영역 집합에 대한 서식을 재설정합니다.
스타일 메타데이터 및 동작 플래그
Style의 여러 불리언 및 숫자 속성은 스타일이 렌더링되는 방식이 아니라 Word UI에서 스타일을 처리하는 방식을 제어합니다: Locked은 서식 보호가 활성화된 경우 스타일이 변경되는 것을 방지하고, IsQuickStyle는 빠른 스타일 갤러리에서 표시 여부를 제어하며, AutomaticallyUpdate은 수동으로 적용된 직접 서식에서 스타일이 자체를 재정의하도록 합니다, SemiHidden와 UnhideWhenUsed는 첫 사용 전후에 스타일 목록에서의 가시성을 제어하고, Priority은 갤러리에서의 정렬 순서에 영향을 줍니다. 스타일은 목록 번호 매기기를 정의할 때 List와 ListFormat 속성을 노출하며, Style.Remove()는 스타일을 its StyleCollection에서 삭제합니다.
팁 및 모범 사례
- 내장 스타일을 찾을 때 이름으로 조회하는 대신
StyleCollection인덱서를StyleIdentifier값과 함께 사용하는 것이 좋습니다 — 이름은 현지화되지만StyleIdentifier값은 현지화되지 않습니다. BaseStyleName를 설정하여 스타일 계층 구조를 구축합니다(예: 모든 헤딩 스타일이 하나의 기본 스타일에서 글꼴 선택을 상속받는 경우) 매 스타일마다 서식을 반복하는 대신.- 문서 간에 스타일을 복사할 때는 모든 서식 속성을 수동으로 읽고 다시 적용하는 대신
StyleCollection.AddCopy(style)를 사용하십시오. - 코드에서 교대로 행을 수동으로 서식 지정하는 대신 밴드 테이블에 대해
TableStyle.ConditionalStyles영역을 구성하십시오 — 각ConditionalStyle영역의 서식은ConditionalStyleType를 기반으로 적용되며, 개별 행에 직접 서식을 설정하는 것이 아닙니다. - 스타일을 프로그래밍 방식으로 제거하거나 이름을 바꾸기 전에
Style.BuiltIn를 확인하십시오; 기본 제공 스타일은 일반적으로 문서의 다른 곳에서 이름으로 참조됩니다.
일반적인 문제
| 문제 | 원인 | 해결책 |
|---|---|---|
StyleCollection 인덱서가 이름 조회에 대해 null을 반환합니다 | 스타일 이름이 이 문서에 존재하지 않거나, 기본 제공 스타일이 아직 사용되지 않아 Word가 이를 구현하지 않았습니다 | 대체 이름은 Style.Aliases에서 확인하거나, 내장 스타일을 위해 StyleIdentifier와 함께 StyleCollection 인덱서를 사용하세요. |
StyleName을(를) 설정하면 예기치 않게 새 스타일이 생성됩니다. | StyleName은(는) 컬렉션에 아직 존재하지 않을 경우 지정된 스타일을 생성합니다. | 먼저 StyleCollection 인덱서를 사용하여 스타일이 존재하는지 확인하고, 아니면 Style 속성을 통해 Style 객체를 직접 할당하십시오. |
TableStyle을(를) 적용한 후 표 밴딩이 표시되지 않습니다. | 조건부 서식 영역(OddRowBanding, EvenRowBanding 등)이 TableStyle.ConditionalStyles에 전혀 설정되지 않았습니다. | ConditionalStyleCollection의 관련 ConditionalStyle 항목에 서식을 지정하십시오. |
| 스타일 변경은 이미 해당 스타일을 사용 중인 콘텐츠에는 영향을 주지 않습니다. | 직접(수동) 서식이 스타일 위에 적용되었으며 우선 순위를 가집니다 | 영향을 받은 런/단락의 직접 서식을 지우거나 Style.AutomaticallyUpdate을 설정하십시오 |
FAQ
문서의 모든 스타일 컬렉션을 어떻게 가져올 수 있나요?
Document.Styles를 읽으면 StyleCollection을 반환하는데, 이 StyleCollection은 해당 문서에 있는 모든 기본 제공 및 사용자 정의 Style를 포함합니다.
Style와 StyleIdentifier의 차이점은 무엇인가요?
Style 은(는) 실제 서식이 포함된 스타일 객체입니다; StyleIdentifier 은(는) 특정 항목을 찾아내는 데 사용되는 로케일에 독립적인 열거형 값입니다 내장 문서 언어와 관계없이 스타일을, 다음을 통해 StyleCollection 인덱서입니다.
표 스타일은 단락 스타일 또는 문자 스타일과 어떻게 다릅니까?
TableStyle은 Style의 하위 클래스이며, 표 레이아웃 속성(Alignment, CellSpacing, padding)과 영역별 서식을 위한 ConditionalStyles 컬렉션(예: 밴드 행, 헤더 행, 코너 셀)을 추가합니다 — 이는 단락 스타일이나 문자 스타일에 적용되지 않는 서식 개념입니다.
기존 스타일을 수정하는 대신 완전히 새로운 스타일을 만들 수 있나요?
예 — 원하는 StyleType과 새 이름을 지정하여 StyleCollection.Add(type, name)을 호출하면 빈 스타일을 만들 수 있으며, 이후 해당 서식 속성(Font, ParagraphFormat 등)을 설정하여 단락/문자 스타일에 적용합니다.
다른 문서에서 포함하여 스타일을 복제하려면 어떻게 해야 하나요?
StyleCollection.AddCopy(style)을 사용하고, Style 객체(다른 Document의 StyleCollection에서 가져올 수 있음)를 전달하여 대상 컬렉션에 복사본을 추가합니다.
API Reference 요약
| 클래스/메서드 | 설명 |
|---|---|
Style | 단일 내장 또는 사용자 정의 단락, 문자, 표 또는 목록 스타일 |
StyleCollection | 문서 내 모든 스타일의 컬렉션으로, Document.Styles를 통해 접근합니다 |
이름으로 StyleCollection 인덱서 | 표시 이름으로 스타일을 찾습니다(예: styles["Heading 1"]) |
식별자별 StyleCollection 인덱서 | 지역에 독립적인 식별자로 내장 스타일을 찾습니다(예: styles[StyleIdentifier.Heading1]) |
StyleCollection.Add(type, name) | 주어진 StyleType의 새 빈 스타일을 생성합니다 |
StyleCollection.AddCopy(style) | 기존 스타일을 이 컬렉션에 복사합니다 |
StyleType | Paragraph, Character, Table, List 스타일을 구분하는 열거형 |
StyleIdentifier | 내장 스타일에 대한 로케일 독립 식별자 |
TableStyle | 테이블 서식을 위한 Style 서브클래스로, 조건부 영역별 스타일링을 포함합니다. |
ConditionalStyleCollection | TableStyle에 있는 영역별 ConditionalStyle 항목 집합 |
ConditionalStyle | 단일 테이블 영역에 대한 서식(글꼴, 단락 형식, 음영, 테두리, 패딩) |
ConditionalStyleType | ConditionalStyle가 적용되는 테이블 영역을 식별하는 열거형 |