소개

Aspose.Words FOSS for .NET은 상업용 Aspose.Words 엔진과 동일한 텍스트 서식 객체 모델을 포함합니다: 실행 수준 속성을 위한 Font, 단락 수준 속성을 위한 ParagraphFormat, 번호 매기기 및 글머리표 목록을 위한 ListFormat, 위치 지정 텍스트 프레임을 위한 FrameFormat, 그리고 찾기-바꾸기를 위한 Range.Replace. 이 가이드는 해당 계층—문서에 이미 존재하는 텍스트의 서식 지정 및 재작성—에 특별히 초점을 맞추며, 처음부터 문서 구조를 구축하는 것과는 다릅니다(출시 개요는 introduction post를 참조하십시오).

이 라이브러리는 MIT 라이선스를 사용하며 네이티브 종속성이 없고 .NET Standard 2.0을 목표로 하므로 .NET Framework 4.6.2+와 .NET 6, 8, 10에서 실행됩니다. NuGet를 통해 설치하거나 소스에서 빌드하십시오(아래 Quick Start를 참조). 여기서 설명하는 모든 내용은 .docx, .docm, .dotx, .dotmnew Document(fileName)로 로드된 Flat OPC 파일에 대해 작동하거나, DocumentBuilder로 메모리 내에서 만든 문서에 대해 작동합니다.

왜냐하면 Aspose.Words FOSS for .NET은 재작성된 것이 아니라 무료 코어로 축소된 정식 Aspose.Words 코드베이스이기 때문에, Font, ParagraphFormat, ListFormat, FrameFormat 객체 모델은 상업용 Aspose.Words for .NET에 직접 이어지며, 프로젝트가 나중에 페이지 레이아웃, 렌더링 또는 이 에디션에서 제외된 추가 포맷 변환기가 필요할 경우에 사용됩니다.


핵심 기능

런 레벨 서식 및 폰트

모든 RunFont 속성을 노출하고, DocumentBuilder.Font는 다음에 입력되는 텍스트에 적용될 폰트를 설정합니다. 명백한 Bold, Italic, Underline 외에도 (값에 Single, Double, Dotted, Dash, Wavy 및 그 *Heavy 변형을 포함하는 Underline 열거형), FontStrikeThrough, DoubleStrikeThrough, Superscript, Subscript, SmallCaps, AllCaps, Hidden, Shadow, Outline, Emboss, Engrave, Color, HighlightColor, Spacing, Position, Kerning, Scaling, 및 EmphasisMark을 포괄합니다. Font.Style, Font.StyleName, Font.StyleIdentifier는 실행을 문자 스타일에 다시 연결하고, Font.ClearFormatting()는 실행에 대한 직접 서식을 스타일 기본값으로 재설정합니다. DocumentBuilder은 또한 Bold, Italic, Underline를 바로 가기로 직접 노출하며, 임시 서식 변경 전후에 빌더의 현재 폰트 상태를 저장하고 복원하기 위해 PushFont()PopFont()을 제공합니다.

단락 서식 지정 ParagraphFormat와 함께

ParagraphFormat (Paragraph.ParagraphFormat 또는 DocumentBuilder.ParagraphFormat를 통해 접근 가능) 은(는) ParagraphAlignment 열거형(Left, Center, Right, Justify, Distributed, 아랍어 카시다와 태국어 분산 변형 포함)을 사용하여 정렬을 제어하고, LeftIndent, RightIndent, FirstLineIndent을(를) 통해 들여쓰기를 제어하며(동아시아 레이아웃에 대한 CharacterUnit* 동등물 포함), SpaceBefore, SpaceAfter, 및 LineSpacingRule/LineSpacing을(를) 통해 간격을 제어합니다. 페이지 매김 동작은 KeepTogether, KeepWithNext, PageBreakBefore, WidowControl으로 제어되며, Bidi은(는) 단락을 오른쪽에서 왼쪽으로 표시합니다. 사용자 지정 탭 정지는 ParagraphFormat.TabStops에 존재하며, 이는 TabStop 객체의 TabStopCollection이며, 각각 Position, TabAlignment(Left, Center, Right, Decimal, Bar) 및 TabLeader(None, Dots, Dashes, Line, Heavy, MiddleDot)을(를) 포함합니다. Font와 마찬가지로, ParagraphFormat.StyleStyleName은(는) 단락을 명명된 Style에 연결하고, ClearFormatting()은(는) 직접 단락 서식을 지웁니다.

다음과 같은 ListFormat가 포함된 목록

ListFormat (Paragraph.ListFormat 또는 DocumentBuilder.ListFormat에서) 단락에 목록 서식을 적용합니다: ApplyBulletDefault()ApplyNumberDefault()는 이를 기본 글머리표 목록 또는 번호 매기기 목록으로 전환하고, RemoveNumbers()는 목록 서식을 완전히 제거하며, ListIndent()/ListOutdent()는 목록 레벨 간에 이동시킵니다. ListFormat.List은 기본 List 정의를 반환하고, ListFormat.ListLevel은 해당 단락에 적용되는 ListLevel을 반환합니다. 이 객체는 NumberStyle, NumberFormat, Alignment ( Left, Center, 또는 RightListLevelAlignment), StartAt, RestartAfterLevel, 레벨별 Font, 및 TrailingCharacter ( Tab, Space, 또는 NothingListTrailingCharacter)을 포함하여 목록 레이블과 단락 텍스트 사이의 간격을 제어합니다. 새로운 목록 정의는 ListCollection.Add(listTemplate)에서 제공하는 내장 ListTemplate 프리셋(BulletDefault, NumberArabicDot, NumberUppercaseRomanDot 등) 중 하나를 사용하거나 단일 레벨 목록의 경우 AddSingleLevelList를 통해 생성되며, 문서의 목록은 Document.Lists를 통해 열거됩니다.

텍스트 프레임과 FrameFormat

Paragraph.FrameFormat 읽기 전용 보고 객체입니다: 그 위의 모든 속성은 단락의 현재 프레임 상태를 직접 설정하게 하지 않고. IsFrame 단락이 현재 프레임인지 여부를 보고합니다; Width, Height, 그리고 HeightRule 그 크기를 보고합니다; HorizontalPosition 그리고 VerticalPosition, 함께 RelativeHorizontalPosition 그리고 RelativeVerticalPosition, 페이지, 여백, 열, 혹은 단락에 대해 어디에 고정되는지 보고하십시오; 그리고 HorizontalDistanceFromText/VerticalDistanceFromText 프레임과 주변 본문 텍스트 사이의 간격을 보고하십시오. HorizontalAlignment 그리고 VerticalAlignment 프레임 내에서 콘텐츠가 어떻게 정렬되는지 보고하십시오.

범위와 IReplacingCallback을 사용한 찾기 및 바꾸기

Range.ReplaceDocument.Range에서 전체 문서 패스로 사용 가능하거나, 임의 노드의 Range에서 사용할 수 있으며 — 일반 패턴/대체 쌍과 FindReplaceOptions 인스턴스와 결합된 패턴/대체 쌍에 대한 오버로드를 제공하고, 정규식 기반 매칭을 지원합니다. FindReplaceOptions.MatchCaseFindWholeWordsOnly는 매치로 간주되는 범위를 좁힙니다; Direction(FindReplaceDirection.Forward 또는 Backward)는 스캔 순서를 설정합니다; ApplyFontApplyParagraphFormat은 교체 단계에서 서식을 대체 텍스트에 전달하도록 합니다; 그리고 Ignore* 플래그 집합(IgnoreDeleted, IgnoreInserted, IgnoreFields, IgnoreFieldCodes, IgnoreFootnotes, IgnoreStructuredDocumentTags, IgnoreShapes, IgnoreOfficeMath)은 특정 콘텐츠 카테고리를 매치에서 제외합니다. 고정 문자열로 표현할 수 없는 교체 로직의 경우, IReplacingCallback.Replacing(args)을 구현하고 이를 FindReplaceOptions.ReplacingCallback으로 설정합니다(또는 콜백을 직접 받는 FindReplaceOptions 생성자 중 하나에 전달합니다); args 매개변수는 ReplacingArgs이며, Match, MatchNode, MatchOffset을 노출하고, 콜백이 매치당 값을 계산할 수 있도록 설정 가능한 Replacement 문자열을 제공합니다. 관련된 ReplaceAction 열거형(Replace, Skip, Stop)은 작업 중 단일 매치에 대한 가능한 결과를 설명합니다.


빠른 시작

Aspose.Words FOSS for .NET은 NuGet을 통해 사용할 수 있습니다:

dotnet add package Aspose.Words.FOSS

대신 소스에서 빌드하려면:

git clone https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git
cd Aspose.Words-FOSS-for-.NET
dotnet build Aspose.Words.sln -c Release

그런 다음 Aspose.Words.csproj에 프로젝트 참조를 추가합니다. 텍스트를 작성하면서 형식을 지정하려면, DocumentBuilder.Font 속성(Bold, Italic, Underline), DocumentBuilder.ParagraphFormat 속성(Alignment, 들여쓰기, 간격), 그리고 DocumentBuilder.ListFormat(ApplyBulletDefault(), ApplyNumberDefault())을 설정한 뒤 Write(), Writeln() 또는 InsertParagraph()를 호출합니다 — 빌더는 현재 형식 상태를 다시 변경할 때까지 작성된 모든 내용에 적용하며, 일시적인 변경을 PushFont()/PopFont()로 감쌀 수도 있습니다. 문서에 이미 존재하는 텍스트를 다시 형식화하거나 다시 쓰려면, new Document(fileName)로 문서를 열고 doc.Range에 대해 Range.Replace()을 호출합니다 — 일반 패턴/교체 오버로드 또는 FindReplaceOptionsMatchCase, FindWholeWordsOnly 또는 사용자 정의 IReplacingCallback을 받는 오버로드 중 하나를 선택하고 — 그 결과를 Save()합니다.


지원되는 형식

형식확장자읽기쓰기
DOCX.docx
DOCM.docm
DOTX.dotx
DOTM.dotm
Flat OPC (모든 변형)(다양한)
Markdown.md
Text.txt

위의 서식 클래스는 문서가 어떤 형식에서 로드되거나 저장되든 동일하게 적용됩니다. 이 버전은 DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3, 또는 WordML을 읽기·쓰기 모두 지원하지 않으며, 페이지 레이아웃 및 렌더링이 범위에 포함되지 않으므로 PDF, XPS 또는 이미지 내보내기도 지원하지 않습니다.


오픈 소스 및 라이선스

Aspose.Words FOSS for .NET은 MIT 라이선스 하에 배포되며, 상업적 및 개인적 사용이 자유롭고 로열티나 재배포 제한이 없습니다. 위에서 설명한 Font, ParagraphFormat, ListFormat, FrameFormat, Range 구현을 포함한 전체 소스는 GitHub의 Aspose.Words FOSS for .NET 리포지토리에서 사용할 수 있습니다.


시작하기

관련 리소스