.NET에서 텍스트 작업하기

.NET에서 텍스트 작업하기

이 가이드는 Aspose.Words FOSS for .NET에서 텍스트를 작업하는 방법을 보여줍니다: run의 글꼴 서식 지정, 단락 서식 지정, Range을(를) 사용한 텍스트 찾기 및 바꾸기, 주석 추가, 그리고 단락을 목록 항목으로 변환하기. Aspose.Words FOSS for .NET는 NuGet를 통해 또는 소스에서 빌드하여 사용할 수 있습니다.

단계별 가이드

Step 1: 라이브러리 가져오기

저장소를 복제하고 빌드하세요 Aspose.Words.sln Release configuration으로 빌드한 뒤, 프로젝트 참조를 추가합니다 Aspose.Words.csproj 자신의 .NET 프로젝트에서, 다음에 설명된 대로 설치 가이드. 추가 using Aspose.Words; 텍스트를 다루는 모든 파일의 상단에 넣으세요.


Step 2: Run의 글꼴 서식 지정

Run는 하나의 서식 집합을 공유하는 텍스트 구간입니다; 그 Text 속성은 순수 텍스트 내용을 보관하고, Font 속성( Font 객체)은 문자 수준 서식을 보관합니다 — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, 그리고 StrikeThrough 등이 있습니다. Font.ClearFormatting()는 run을 기본값으로 재설정합니다. 단락의 run은 그 Runs 속성을 통해 접근할 수 있으며, 이는 RunCollection입니다. 새로운 텍스트를 쓰기 전에 DocumentBuilder.Font에 글꼴 속성을 설정하는 것이 일반적으로 개별 Run 객체를 사후에 서식 지정하는 것보다 간단합니다.


3단계: 단락 서식 지정

Paragraph.ParagraphFormat (a ParagraphFormat 객체) 는 단락 수준 레이아웃을 제어합니다: Alignment, 들여쓰기 (LeftIndent, RightIndent, FirstLineIndent), 간격 (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule), 그리고 페이지 매김 동작 (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() 은 이를 기본값으로 재설정하고, Paragraph.JoinRunsWithSameFormatting() 은 동일한 서식을 가진 인접한 run을 병합합니다 — 프로그램matic 편집이 여러 번 이루어진 후 단락에 필요 이상으로 많은 run이 남았을 때 유용합니다.


4단계: 범위를 사용한 텍스트 찾기 및 바꾸기

콘텐츠를 포함하는 모든 노드 — Document, Section, Paragraph, 또는 Run — 은 Range 를 노출합니다. Range.Text 은 해당 범위 내 모든 내용의 순수 텍스트를 반환하고, Range.Replace(pattern, replacement) 은 그 범위에만 적용되는 찾기-바꾸기를 수행합니다: Paragraph의 Range 에서 호출하면 단일 단락의 텍스트만 변경하고, Document.Range 에서 호출하면 문서 전체를 검색합니다. Range.Delete() 은 범위의 내용을 완전히 제거합니다.


5단계: 주석 추가

Comment 을 new Comment(doc, author, initial, dateTime) 로 구성하고, SetText(text) 로 텍스트를 설정한 다음 다른 노드와 마찬가지로 트리에 삽입합니다. Comment.AddReply(author, initial, dateTime, text) 은 스레드형 답글을 붙이며 — 그 자체도 Comment — RemoveReply(reply) / RemoveAllReplies() 은 답글을 다시 제거합니다. 문서의 주석은 CommentCollection 에 수집됩니다.


6단계: 단락을 목록 항목으로 변환

Paragraph.ListFormat (a ListFormat 객체) 는 단락이 목록에 포함되는지 여부를 보고하고 제어합니다: IsListItem 와 ListLevelNumber 가 현재 상태를 보고합니다. ApplyBulletDefault() 는 단락을 기본 불릿 항목으로 변환하고, ApplyNumberDefault() 는 기본 번호 매기기 항목으로 변환합니다; ListIndent() / ListOutdent() 은 들여쓰기 수준을 변경하고, RemoveNumbers() 은 다시 일반 단락으로 되돌립니다.

일반적인 문제 및 해결 방법

서식 지정 하나 Run’s 폰트는 인접 텍스트를 변경하지 않습니다. 인접한 텍스트는 다릅니다 Run 자신만의 Font 인스턴스. 영향을 받는 모든 항목을 찾아서 포맷을 적용하거나 Run, 또는 포맷을 설정 DocumentBuilder.Font 새 텍스트를 쓰기 전에.

Range.Replace 의도한 영역 외부의 텍스트를 변경합니다. Replace 에 호출되었습니다 Document.Range 보다 좁은 노드 범위 대신에. 특정 범위에 호출하십시오 Paragraph or Section 그 텍스트는 변경되어야 합니다.

문단이 글머리표 목록 항목처럼 보이지만 IsListItem is false. 글머리표는 실제 목록 서식이 아닌 입력된 텍스트입니다. 다음을 사용하여 적용하십시오 ListFormat.ApplyBulletDefault() 대신.

문서는 결국 훨씬 더 많은 Run 노드를 예상보다 많이 포함하게 됩니다. 반복적인 작은 프로그래밍 편집으로 인해 실행이 분리되고 다시 결합되지 않습니다. 호출하십시오 Paragraph.JoinRunsWithSameFormatting() 편집 배치 후에.

자주 묻는 질문

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

A Run은 하나의 문자 서식 집합(Font)을 공유하는 텍스트 범위입니다. A Paragraph은 하나 이상의 실행과 단락 수준 서식(ParagraphFormat)을 포함하는 복합 노드입니다.

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

그 노드의 Range에 있는 Text 속성을 읽으세요 — document.Range.Text 또는 section.Range.Text.

전체 문서가 아니라 단일 단락 안의 텍스트만 교체하려면 어떻게 해야 하나요?

Replace(pattern, replacement)을 그 Paragraph의 Range에 호출하고, Document.Range에서는 호출하지 마세요.

기존 댓글에 어떻게 답글을 달 수 있나요?

원본 Comment 인스턴스에 Comment.AddReply(author, initial, dateTime, text)을 호출하세요.

번호 매긴 목록 항목을 일반 단락으로 되돌리려면 어떻게 해야 하나요?

그 단락의 ListFormat에 RemoveNumbers()를 호출하십시오.

참조

 한국어