텍스트 작업

텍스트 작업

Word 문서의 텍스트는 Run 노드(같은 글꼴 서식을 공유하는 연속된 문자)로 구성되며, 이들은 Paragraph 노드 안에 그룹화됩니다. Aspose.Words .NET용 FOSS는 두 가지를 직접 제공하고, 문자 서식을 위한 Font, 단락 수준 서식을 위한 ParagraphFormat, 그리고 트리의 어느 부분이든 텍스트를 읽거나 교체하기 위한 Range을 제공합니다. 이 가이드는 실행과 글꼴, 단락 서식, 텍스트 읽기 및 교체, 주석, 그리고 단락 수준 목록 서식을 다룹니다.


런 및 문자 서식

A Run은(는) 하나의 서식 집합을 공유하는 텍스트 구간을 나타냅니다; 그 Text 속성은 순수 텍스트 내용을 보관하고, 그 Font 속성( Font 객체)은 문자 수준 서식을 보관합니다 — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, StrikeThrough 등 다수. Font.ClearFormatting()는 실행의 글꼴을 기본값으로 재설정합니다. 단락의 실행은 그 Runs 속성을 통해 접근할 수 있으며, 이는 RunCollection입니다.


단락 및 단락 서식

Paragraph은(는) 하나의 단락에 포함된 실행(및 기타 인라인 콘텐츠)을 담고 있는 복합 노드입니다; 문서 또는 본문의 단락은 ParagraphCollection(Body.Paragraphs)으로 노출됩니다. Paragraph.ParagraphFormat( ParagraphFormat 객체)는 단락 수준 레이아웃을 제어합니다 — Alignment, 들여쓰기(LeftIndent, RightIndent, FirstLineIndent), 간격(SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule), 그리고 페이지 매김 동작(KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting()은(는) 이를 기본값으로 재설정하고, Paragraph.JoinRunsWithSameFormatting()은(는) 동일한 서식을 가진 인접 실행을 병합합니다.


범위를 사용한 텍스트 읽기 및 교체

내용을 포함하는 모든 노드 — Document, Section, Paragraph, 또는 Run — 는 Range를 노출합니다. Range.Text는 해당 범위 내 모든 내용의 순수 텍스트를 반환하고, Range.Replace(pattern, replacement)은 그 범위에만 국한된 찾기 및 바꾸기를 수행하므로 예를 들어 문서의 나머지 부분을 건드리지 않고 한 단락 안의 텍스트를 교체할 수 있습니다. Range.Delete()은 해당 범위의 내용을 완전히 제거합니다.


Comments

Comment 노드는 텍스트 내 위치에 댓글을 고정합니다; new Comment(doc, author, initial, dateTime)으로 하나를 만들고 SetText(text)로 본문 텍스트를 설정한 뒤, 다른 노드와 마찬가지로 문서에 삽입합니다. Comment.AddReply(author, initial, dateTime, text)은 스레드형 답글을 붙이고, RemoveReply(reply) / RemoveAllReplies()는 이를 제거합니다. 문서의 댓글은 CommentCollection에 모아집니다.


단락 수준의 목록 서식

Paragraph.ListFormat ( ListFormat 객체) 은 단락이 목록의 일부인지 여부를 보고하고 제어합니다: IsListItem와 ListLevelNumber은 현재 상태를 보고하고, ApplyBulletDefault()와 ApplyNumberDefault()는 단락을 기본 글머리표 또는 번호 매기기 목록 항목으로 전환하며, ListIndent() / ListOutdent()은 목록 중첩 수준을 변경하고, RemoveNumbers()은 다시 일반 단락으로 되돌립니다.


팁 및 모범 사례

  • 텍스트를 빌더로 작성하기 전에 DocumentBuilder.Font에 글꼴 속성을 설정하고, 텍스트를 먼저 작성한 뒤 개별 Run 객체를 다시 서식 지정하는 대신에.
  • Range.Replace의 적용 범위를 실제로 변경하고자 하는 부분을 포함하는 가장 작은 범위로 제한하세요 — 변경이 문서 전체에 적용되지 않아야 할 경우 전체 문서 대신 Paragraph 또는 Section의 범위에 호출합니다.
  • 프로그래밍 방식의 일련의 편집 후에 Paragraph.JoinRunsWithSameFormatting()를 호출하여 불필요하게 단편화된 실행 구조를 방지하십시오.
  • 내장 기본값이 충분할 때 목록 정의를 수동으로 구성하는 대신 ListFormat.ApplyBulletDefault() / ApplyNumberDefault()를 사용하여 빠른 기본 목록을 만드세요.
  • Comment.AddReply 결과를 Comment 노드 자체로 읽으세요 — 응답은 일반 문자열이 아니라 전체 댓글 객체입니다.

일반적인 문제

문제원인해결
Run의 Font을(를) 포맷팅해도 인접 텍스트는 시각적으로 변경되지 않습니다.인접 텍스트는 자체 Font 인스턴스를 가진 다른 Run에 있습니다.영향을 받은 모든 Run를 찾아 포맷팅하거나, 쓰기 전에 DocumentBuilder.Font를 통해 포맷팅을 설정하십시오.
Range.Replace가 의도된 영역 외부의 텍스트를 변경합니다.Replace가 더 좁은 노드 범위가 아니라 Document.Range에 호출되었습니다.특정 Paragraph, Section 또는 다른 노드의 Range에 Replace를 호출합니다
단락은 목록 항목처럼 보이지만 IsListItem는 false입니다글머리표/번호는 수동 텍스트이며 실제 목록 서식이 아닙니다타이핑한 문자 대신 ListFormat.ApplyBulletDefault() 또는 ApplyNumberDefault()를 사용하여 실제 목록 서식을 적용합니다
문서에 예상보다 훨씬 많은 Run 노드가 있습니다반복적인 작은 편집으로 인해 run이 분리되고 다시 합쳐지지 않습니다편집 배치 후에 Paragraph.JoinRunsWithSameFormatting()를 호출합니다

FAQ

Run와 Paragraph의 차이점은 무엇인가요?

Run는 하나의 문자 서식 집합(Font)을 공유하는 텍스트 구간입니다; Paragraph는 하나 이상의 실행(및 기타 인라인 콘텐츠)과 단락 수준 서식(ParagraphFormat)을 포함하는 복합 노드입니다.

문서 또는 섹션의 모든 텍스트를 어떻게 읽을 수 있나요?

그 노드의 Range의 Text 속성을 읽으세요 — 예를 들어, document.Range.Text 또는 section.Range.Text.

한 단락에서만 텍스트를 찾고 바꾸려면 어떻게 해야 하나요?

Document.Range이 아니라 그 Paragraph의 Range에 Replace(pattern, replacement)를 호출하세요.

문서에 주석을 추가하려면 어떻게 해야 하나요?

new Comment(doc, author, initial, dateTime)로 생성하고, SetText(text)으로 텍스트를 설정한 뒤 트리에 삽입하세요; Comment.AddReply(author, initial, dateTime, text)로 응답하세요.

단락을 글머리표 목록 항목으로 바꾸려면 어떻게 해야 하나요?

그 단락의 ListFormat에 ApplyBulletDefault()를 호출하고; 번호 매기기 목록을 원한다면 ApplyNumberDefault()를 사용하세요.


API Reference 요약

클래스/메서드설명
Run하나의 문자 서식 집합을 공유하는 텍스트 구간.
Font문자 수준 서식 — 이름, 크기, 굵게, 기울임, 색상 등.
Paragraph하나의 단락에 대한 실행 및 서식을 포함하는 복합 노드.
ParagraphFormat단락 수준 서식 — 정렬, 들여쓰기, 간격, 페이지 매김.
ParagraphCollectionParagraph 노드의 형식이 지정된 컬렉션, 예: Body.Paragraphs.
Range문서의 연속된 영역; Text, Replace, 및 Delete를 지원합니다.
Comment텍스트 내 위치에 고정된 스레드형 댓글.
CommentCollection문서의 댓글 컬렉션.
ListFormat단락이 목록에 참여하는지와 그 방식을 제어합니다.

참조

 한국어