소개
Aspose.Words FOSS for .NET이 이제 제공됩니다: 순수 C#만으로 Word 문서를 생성, 읽기 및 편집할 수 있는 무료 오픈 소스 .NET 라이브러리이며, Microsoft Word 설치가 필요 없습니다. 이는 템플릿에서 보고서와 편지를 생성하고, 기존 .docx 파일에서 콘텐츠를 읽어 재구성하거나, 처리 파이프라인의 일환으로 Word 문서를 Markdown이나 일반 텍스트로 변환해야 하는 개발자를 대상으로 하며, 이를 위해 상용 SDK 라이선스를 구매할 필요가 없습니다.
이 라이브러리는 MIT 라이선스로 배포되며 네이티브 종속성이 없습니다 — 모든 것이 관리 코드에서 실행됩니다. .NET Standard 2.0을 목표로 하므로 .NET Framework 4.6.2 이상 및 .NET 6, 8, 10에서 Windows, Linux, macOS에서 동작합니다. NuGet을 통해 설치하거나, 단일 dotnet build 명령으로 소스에서 라이브러리를 빌드할 수 있습니다 (아래 빠른 시작을 참고하십시오).
전형적인 새로운 오픈 소스 문서 라이브러리와 차별화되는 점은 이것이 재작성이나 래퍼가 아니라는 것입니다. Aspose.Words FOSS for .NET는 진정한 Aspose.Words 코드베이스이며 — 2003년부터 프로덕션에서 Word 문서를 처리해 온 동일한 문서 엔진을 — 무료 MIT 라이선스 코어로 축소한 것입니다. 이 에디션으로는 부족해 페이지 레이아웃, 렌더링 또는 추가 포맷 변환기가 필요한 개발자는 코드를 다시 작성하지 않고도 상용 Aspose.Words for .NET으로 이동할 수 있습니다. 이는 동일한 기반 API이기 때문입니다.
주요 기능
문서 생성 및 편집
새 문서를 new Document()와 고수준 DocumentBuilder을 사용해 처음부터 구축하거나, 기존 .docx 파일을 new Document(fileName)으로 열 수 있습니다. DocumentBuilder는 Write(), Writeln(), InsertParagraph(), InsertBreak()와 같은 순차적 저작 방법을 제공하며, 삽입되는 콘텐츠에 적용되는 서식 속성(Font, ParagraphFormat, PageSetup)도 포함합니다. 낮은 수준의 접근을 위해서는 Section, Paragraph, Run, Table 노드를 직접 순회하거나, DocumentVisitor을 서브클래스화하여 모든 노드 유형을 한 번에 처리할 수 있습니다.
표와 목록
표는 Table, Row, Cell 노드로 구성됩니다. Table.SetBorders(), Table.SetShading(), Table.AutoFit()는 전체 표를 한 번에 포맷하고, Table.Rows 및 행별 Cell 접근은 더 세밀한 제어를 제공합니다. 번호 매기기 및 불릿 목록은 ListCollection와 ListFormat를 통해 처리됩니다: ListFormat.ApplyBulletDefault() 또는 ApplyNumberDefault()로 내장 스타일을 적용하거나, ListCollection.Add()로 사용자 정의 목록 정의를 등록합니다.
변경 추적 및 문서 보호
편집하기 전에 Document.StartTrackRevisions()를 호출하여 삽입, 삭제 및 서식 변경을 기록한 다음, RevisionCollection(AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria))을 통해 검토하고 수락하거나 거부하거나, Document.AcceptAllRevisions()으로 한 번에 모두 수락합니다. Document.Protect()은 DocumentSecurity 열거형(ReadOnlyEnforced, ReadOnlyRecommended, PasswordProtected 및 관련 값)을 사용하여 비밀번호 보호 또는 읽기 전용 강제를 적용하고, Document.Unprotect()는 이를 되돌립니다.
필드, 매크로 및 디지털 서명
필드 평가 엔진은 FieldDate(DATE 필드) 및 FieldDocProperty(DOCPROPERTY 필드)와 같은 필드를 Document.UpdateFields()를 통해 제자리에서 업데이트합니다 — 페이지 번호와 같이 페이지 레이아웃에 의존하는 필드는 이 버전에서는 페이지 레이아웃이 포함되지 않으므로 자리 표시자 값으로 평가됩니다. DOCM 및 DOTM 파일은 VBA 프로젝트를 그대로 유지한 채 라운드 트립합니다. 기존 디지털 서명은 DigitalSignatureCollection와 DigitalSignature(IsValid, SubjectName, IssuerName, SignTime)를 통해 검사하여 문서에 서명이 되어 있고 변조되지 않았는지 확인할 수 있습니다; 새로운 서명을 만드는 것은 이 버전의 기능에 포함되지 않습니다.
차트
문서에 차트를 삽입하려면 DocumentBuilder.InsertChart()를 사용하고, 반환된 Chart 객체를 통해 데이터 시리즈를 구성합니다.
using Aspose.Words;
using Aspose.Words.Drawing.Charts;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
// Delete default generated series.
chart.Series.Clear();
string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
doc.Save("chart.docx");
빠른 시작
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에 프로젝트 참조를 추가합니다. 참조가 설정되면 차트가 포함된 문서를 만들고 DOCX로 저장합니다:
using Aspose.Words;
using Aspose.Words.Drawing.Charts;
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
Shape shape = builder.InsertChart(ChartType.Line, 432, 252);
Chart chart = shape.Chart;
// Delete default generated series.
chart.Series.Clear();
string[] categories = new string[] { "AW Category 1", "AW Category 2", "AW Category 3" };
chart.Series.Add("AW Series 1", categories, new double[] { 4.3, 2.5, 3.5 });
doc.Save("chart.docx");
Console.WriteLine("Saved chart.docx");
지원되는 형식
| 포맷 | 확장자 | 읽기 | 쓰기 |
|---|---|---|---|
| DOCX | .docx | ✓ | ✓ |
| DOCM | .docm | ✓ | ✓ |
| DOTX | .dotx | ✓ | ✓ |
| DOTM | .dotm | ✓ | ✓ |
| Flat OPC (모든 변형) | (다양함) | ✓ | ✓ |
| Markdown | .md | ✓ | ✓ |
| Text | .txt | ✓ | ✓ |
이 버전은 의도적으로 페이지 레이아웃 및 렌더링을 제외합니다 — PDF, XPS, 이미지 내보내기 및 인쇄 기능이 없으며, 그 결과 페이지 번호와 같은 레이아웃 종속 필드 값은 계산되지 않고 자리 표시자로 평가됩니다. 추가 형식 변환기(DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3, 및 WordML)는 읽거나 쓸 수 없으며, 메일 병합 실행, LINQ Reporting, 문서 비교, 새로운 디지털 서명 생성, 임베디드 폰트 서브세팅도 포함되지 않습니다. 이러한 서브시스템은 이 버전을 무료로 유지하기 위해 상용 코드베이스에서 제거된 것과 동일합니다.
오픈 소스 & 라이선스
Aspose.Words FOSS for .NET은 MIT 라이선스 하에 출시되었으며, 상업적 및 개인적 사용 모두 무료이고 로열티나 재배포 제한이 없습니다. 전체 소스는 GitHub에 있으며, Aspose.Words FOSS for .NET 저장소에 있습니다.