.NET에서 스타일을 사용하는 방법

.NET에서 스타일을 사용하는 방법

이 가이드는 단락, 문자, 표 및 목록 스타일을 조회하고 적용하며 생성하는 방법을 보여줍니다 Aspose.Words FOSS for .NET, 사용하여 Style, StyleCollection, 및 TableStyle 클래스. 이 문서에서는 문서의 스타일 컬렉션을 읽고, 언어에 관계없이 스타일을 안정적으로 조회하며, 단락 및 실행에 스타일을 적용하고, 스타일을 생성 및 복사하며, 표 스타일에 대한 영역별 조건부 서식을 구성하는 방법을 다룹니다.

단계별 가이드

1단계: 패키지 설치

Aspose.Words FOSS for .NET은 아직 NuGet 패키지를 배포하지 않으므로 대신 소스에서 라이브러리를 빌드하십시오. https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git을(를) 클론한 뒤, .NET SDK를 사용하여 Release 구성으로 Aspose.Words.sln을 빌드하고, 프로젝트에서 생성된 Aspose.Words 어셈블리를 참조합니다. 이 라이브러리는 .NET Standard 2.0을 대상으로 하므로 .NET Framework 4.6.2+ 및 .NET 6/8/10에서 실행됩니다.


2단계: 필요한 클래스 가져오기

using Aspose.Words; 지시문을 추가합니다 – Style, StyleCollection, TableStyle, StyleType, StyleIdentifier, ConditionalStyle, ConditionalStyleCollection, ConditionalStyleType는 모두 Aspose.Words 네임스페이스에 있으며 Document와 함께 존재합니다.


3단계: 문서의 스타일 컬렉션 읽기

Document.Styles은(는) StyleCollection을 반환합니다 – 문서에 연결된 모든 내장 및 사용자 정의 Style. StyleCollection.Count은(는) 보유한 스타일 수를 보고하고, DefaultFont / DefaultParagraphFormat는 명시적 스타일이 적용되기 전에 새 콘텐츠가 상속받는 문서 전체 기본 서식을 설명합니다.


4단계: 스타일을 신뢰성 있게 조회하기

표시 이름을 사용하여 StyleCollection 인덱서, styles[name] 로 스타일을 검색합니다. 내장 스타일의 경우 대신 StyleIdentifier 열거형 값과 같은 인덱서를 사용하는 것이 좋습니다 – styles[sti] – 이름은 현지화되지만 StyleIdentifier 값은 현지화되지 않으므로 식별자를 통한 조회는 문서 언어와 관계없이 동일하게 작동합니다. 인덱서가 기대한 결과를 찾지 못할 경우 Word가 동일한 스타일에 대해 인식하는 대체 이름은 Style.Aliases 를 확인하고, 스타일을 프로그래밍 방식으로 제거하거나 이름을 바꾸기 전에 Style.BuiltIn 을 확인하십시오. 내장 스타일은 문서 내 다른 위치에서 이름으로 자주 참조되기 때문입니다.


5단계: 스타일을 단락 또는 실행에 적용하기

스타일을 보유한 서식 개체는 Style 속성(실제 Style 객체)과 StyleName 속성(이름으로 스타일을 해결하거나 생성하는 바로 가기) 두 가지를 노출합니다. ParagraphFormat.Style 또는 ParagraphFormat.StyleName를 설정하여 단락 스타일을 적용하고, Font.Style 또는 Font.StyleName을 설정하여 실행의 서식에 문자 스타일을 적용합니다. 컬렉션에 아직 존재하지 않는 이름으로 StyleName을 할당하면 해당 스타일이 생성됩니다 – 먼저 StyleCollection 인덱서를 사용해 스타일 존재 여부를 확인하거나, 의도한 동작이 아니라면 Style 객체를 직접 할당하십시오.


6단계: 스타일 계층 구조 만들기

BaseStyleName을 읽어 특정 스타일이 서식이 설정되지 않은 상태에서 상속받는 스타일을 찾고, LinkedStyleName은 쌍을 이루는 단락/문자 스타일을 나타냅니다(Word가 머리글 및 연결된 문자 스타일과 같은 내장 스타일에 대해 정의한 대로). NextParagraphStyleName는 이 스타일을 사용한 뒤 입력된 새 단락에 Word가 할당하는 스타일을 의미합니다. 관련 스타일 집합을 정의할 때는 BaseStyleName을 설정하십시오 — 예를 들어 모든 헤딩 스타일이 하나의 기본 스타일에서 글꼴 선택을 상속받도록 하는 헤딩 스타일 군과 같이 — 매 스타일마다 동일한 서식을 반복하는 대신에.


7단계: 스타일 만들기 또는 복사하기

StyleCollection.Add(type, name)를 StyleType (Paragraph, Character, Table, 또는 List)과 이름을 함께 호출하여 새 빈 스타일을 만들고, 필요에 따라 Font와 ParagraphFormat 속성을 설정합니다. 기존 스타일을 복제하려면 — 다른 Document의 StyleCollection에 있는 스타일도 포함하여 — StyleCollection.AddCopy(style)을 호출하고 모든 서식 속성을 수동으로 읽고 다시 적용하지 마세요. Style.Remove()을 호출하면 컬렉션에서 스타일을 삭제할 수 있습니다.


8단계: 표 스타일 및 조건부 서식 구성

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 영역을 나타냅니다; 개별 표 행이 아니라 이러한 영역에 서식을 지정하면 표 편집 시에도 유지되는 밴드, 헤더 행 또는 코너 셀 서식을 얻을 수 있습니다.


9단계: 서식 재설정 또는 제거

ConditionalStyle.ClearFormatting()을 호출하여 하나의 조건부 영역을 재설정하거나, ConditionalStyleCollection.ClearFormatting()을 호출하여 TableStyle의 모든 영역을 한 번에 재설정합니다. StyleCollection.ClearQuickStyleGallery()은 스타일 자체를 삭제하지 않고 Word UI의 빠른 스타일 갤러리에서 모든 스타일을 제거합니다 — 문서 내용을 건드리지 않고 갤러리를 정리할 때 유용합니다.

일반적인 문제 및 해결 방법

StyleCollection 인덱서는 이름 조회에 대해 null을 반환합니다 이 문서에 해당 스타일 이름이 없거나, 기본 제공 스타일이 아직 사용되지 않아 Word가 해당 스타일을 실제로 생성하지 않았습니다. 확인하십시오 Style.Aliases 대체 이름을 확인하거나, 다음을 사용하십시오 StyleCollection 인덱서를 사용하여 StyleIdentifier 대신 내장 스타일에 대해.

설정 StyleName이(가) 예기치 않게 새 스타일을 생성합니다 StyleName 컬렉션에 아직 존재하지 않을 경우 지정된 스타일을 생성합니다. 사용하세요 StyleCollection 인덱서를 먼저 사용해 스타일이 존재하는지 확인하고, 또는 할당하세요 Style 객체를 직접 Style 속성 대신에 StyleName.

테이블 밴딩이 TableStyle을 적용한 후 나타나지 않습니다 조건부 서식 영역 – OddRowBanding, EvenRowBanding, 및 유사한 – 은 절대 구성되지 않았습니다 TableStyle.ConditionalStyles. 관련 항목에 서식을 설정하십시오 ConditionalStyle 항목에 ConditionalStyleCollection.

스타일 변경은 이미 해당 스타일을 사용 중인 콘텐츠에 영향을 주지 않습니다 직접(수동) 서식이 스타일 위에 적용되면 스타일 자체 설정보다 우선합니다. 영향을 받은 실행이나 단락의 직접 서식을 지우거나, 설정하십시오 Style.AutomaticallyUpdate 이렇게 하면 스타일이 해당 수동 서식에서 다시 정의됩니다.

다른 언어로 작성된 문서에서 내장 스타일 조회가 실패합니다 그 StyleCollection indexer는 이름으로 호출될 때 현지화된 표시 이름과 일치합니다. 해당 enum value와 함께 동일한 indexer를 사용하십시오. StyleIdentifier enum value를 대신 사용하십시오. 해당 식별자는 로케일에 독립적입니다.

자주 묻는 질문

문서의 모든 스타일 컬렉션을 가져오려면 어떻게 해야 하나요?

Document.Styles을(를) 읽으세요. 이 메서드는 해당 문서의 모든 내장 및 사용자 정의 Style를 포함하는 StyleCollection을 반환합니다.

Style와 StyleIdentifier의 차이점은 무엇인가요?

Style은 실제 스타일 객체이며 해당 서식이 포함됩니다; StyleIdentifier은 문서 언어와 무관하게 특정 내장 스타일을 조회하기 위해 StyleCollection 인덱서를 통해 사용되는 로케일에 독립적인 열거형 값입니다.

표 스타일은 단락 또는 문자 스타일과 어떻게 다릅니까?

TableStyle은 Style의 하위 클래스이며, 표 레이아웃 속성(Alignment, CellSpacing, padding)과 밴드 행, 헤더 행, 코너 셀과 같은 영역별 서식을 위한 ConditionalStyles 컬렉션을 추가합니다 – 이는 단락 또는 문자 스타일에 적용되지 않는 서식 개념입니다.

기존 스타일을 수정하는 대신 새 스타일을 만들 수 있나요?

예 – 원하는 StyleType과 새 이름을 지정하여 StyleCollection.Add(type, name)을 호출하면 빈 스타일을 만들 수 있으며, 이후 단락 또는 문자 스타일에 대해 (Font, ParagraphFormat 등) 서식 속성을 설정합니다.

다른 문서에서 포함하여 스타일을 복제하려면 어떻게 해야 하나요?

StyleCollection.AddCopy(style)을 호출하고 Style 객체를 전달하십시오 – 이 객체는 다른 Document의 StyleCollection에서 올 수 있습니다 – 이렇게 하면 대상 컬렉션에 복사본이 추가됩니다.

참조

 한국어