소개
Aspose.Slides FOSS for .NET은 C#만으로 PowerPoint 프레젠테이션을 완전하게 관리할 수 있는 포괄적인 클래스 세트를 제공합니다. 이 라이브러리를 사용하면 새 .pptx 파일을 처음부터 만들고, 기존 파일을 로드하고, 슬라이드와 도형을 조작하며, 결과를 디스크에 저장할 수 있습니다 – Microsoft Office나 외부 종속성을 설치할 필요가 없습니다.
Aspose.Slides.Foss NuGet 패키지는 .NET 9.0을 대상으로 하며 Windows, macOS, Linux 및 Docker 컨테이너에서 동일하게 실행됩니다. MIT 라이선스로 배포되므로 상업용 및 오픈소스 프로젝트에서 제한 없이 사용할 수 있습니다.
이 게시물에서는 핵심 프레젠테이션 관리 기능을 살펴봅니다: 슬라이드 작업, 도형 계층 구조 구축, 텍스트 정리, 표 관리 및 PPTX 저장.
포함 내용
프레젠테이션 생성 및 로드
Presentation 클래스는 모든 작업의 진입점입니다. 빈 프레젠테이션을 만들거나 파일 경로에서 로드하거나 스트림에서 읽을 수 있습니다. 이 클래스는 IDisposable을 구현하므로, using 문으로 감싸면 리소스가 적절히 해제됩니다.
// Create a brand-new, empty presentation
using var pres = new Presentation();
// Load an existing file
using var existing = new Presentation("report.pptx");
Presentation 객체는 Slides, Masters, LayoutSlides, Sections, CommentAuthors, Images 및 NotesSize와 같은 속성을 통해 전체 슬라이드 계층 구조를 노출합니다.
Slides와 작업하기
Presentation.Slides에 의해 반환되는 SlideCollection은 슬라이드 추가, 복제, 삽입, 순서 변경 및 제거를 지원합니다. 레이아웃을 유지하거나 재매핑하면서 동일한 프레젠테이션 내 또는 여러 프레젠테이션 간에 슬라이드를 복제할 수 있습니다.
using var pres = new Presentation();
// The default presentation contains one blank slide
var firstSlide = pres.Slides[0];
// Clone the first slide and append it
pres.Slides.AddClone(firstSlide);
// Insert a clone at a specific position
pres.Slides.InsertClone(1, firstSlide);
// Remove a slide by index
pres.Slides.RemoveAt(2);
// Total slide count
int count = pres.Slides.Count;
각 Slide은 SlideNumber, Hidden, LayoutSlide, NotesSlideManager 및 Name을 노출합니다. foreach를 사용하여 컬렉션을 반복하거나 ToArray()를 사용하여 배열로 변환할 수 있습니다.
도형 및 자동 도형
모든 슬라이드에는 ShapeCollection이 포함되어 있으며, Slide.Shapes를 통해 접근할 수 있습니다. 이 컬렉션은 가장 일반적인 도형 유형에 대한 팩터리 메서드를 제공합니다.
using var pres = new Presentation();
var slide = pres.Slides[0];
// Add a rectangle AutoShape
var rect = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 50, 300, 150);
// Add a connector
var connector = slide.Shapes.AddConnector(
ShapeType.BentConnector3, 100, 200, 200, 50);
// Reorder a shape to bring it forward
slide.Shapes.Reorder(0, rect);
// Remove all shapes
slide.Shapes.Clear();
AddAutoShape 및 InsertAutoShape 메서드는 ShapeType 열거형 값과 위치 및 크기 좌표를 허용합니다. AddConnector, InsertConnector, AddPictureFrame 및 InsertPictureFrame는 동일한 패턴을 따릅니다.
텍스트: 단락 및 부분
프레젠테이션의 텍스트는 TextFrame 안에 존재하며, 그 안에는 ParagraphCollection이 포함됩니다. 각 Paragraph는 개별 텍스트 실행을 독립적인 서식으로 나타내는 Portion 객체의 PortionCollection를 보유합니다.
using var pres = new Presentation();
var slide = pres.Slides[0];
var shape = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 50, 400, 200);
// Access the shape's text frame
var tf = shape.TextFrame;
// Read or set the full text
tf.Text = "Hello, presentation world!";
// Work with individual paragraphs and portions
var para = new Paragraph();
var portion = new Portion("Formatted run");
para.Portions.Add(portion);
tf.Paragraphs.Add(para);
각 Portion는 글꼴, 크기, 굵게/기울임, 색상, 밑줄 및 기타 문자 수준 속성을 제어하기 위한 PortionFormat 속성을 가지고 있습니다. ParagraphFormat은 정렬, 글머리표 스타일, 간격 및 들여쓰기를 제어합니다.
표
테이블은 ShapeCollection.AddTable을 통해 추가되며, 열 너비와 행 높이를 배열로 받아들입니다. 반환된 Table 객체는 Rows, Columns 및 개별 Cell 객체에 대한 접근을 제공합니다.
using var pres = new Presentation();
var slide = pres.Slides[0];
double[] colWidths = { 150, 150, 150 };
double[] rowHeights = { 40, 40, 40 };
var table = slide.Shapes.AddTable(
50, 50, colWidths, rowHeights);
// Set text in a cell
table.Rows[0][0].TextFrame.Text = "Header 1";
table.Rows[0][1].TextFrame.Text = "Header 2";
table.Rows[0][2].TextFrame.Text = "Header 3";
// Merge cells
table.MergeCells(table.Rows[1][0], table.Rows[1][2], false);
// Style presets
table.StylePreset = TableStylePreset.MediumStyle2Accent1;
프레젠테이션 저장
Presentation.Save 메서드는 문서를 파일이나 스트림에 씁니다. SaveFormat 열거형은 출력 형식을 지정합니다. PPTX는 기본 지원 출력 형식입니다.
using var pres = new Presentation();
// ... build slides ...
// Save to a file
pres.Save("output.pptx", SaveFormat.Pptx);
// Save to a stream
using var ms = new MemoryStream();
pres.Save(ms, SaveFormat.Pptx);
// Save specific slides by index
pres.Save("subset.pptx", new[] { 1, 3 }, SaveFormat.Pptx);
출력에 대한 추가 제어를 위해 SaveOptions 객체를 전달할 수도 있습니다.
빠른 시작
.NET CLI를 사용하여 패키지를 설치합니다:
dotnet add package aspose.slides.foss
그런 다음 최소 프레젠테이션을 만들고 저장합니다:
using Aspose.Slides.Foss;
using Aspose.Slides.Foss.Export;
// 1. Create a new presentation
using var pres = new Presentation();
// 2. Get the default slide
var slide = pres.Slides[0];
// 3. Add a title shape
var title = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 30, 600, 60);
title.TextFrame.Text = "Quarterly Report";
// 4. Add a content shape
var body = slide.Shapes.AddAutoShape(
ShapeType.Rectangle, 50, 120, 600, 300);
var para = new Paragraph();
para.Portions.Add(new Portion("Revenue grew 12% year-over-year."));
body.TextFrame.Paragraphs.Add(para);
// 5. Save as PPTX
pres.Save("quarterly-report.pptx", SaveFormat.Pptx);
지원되는 형식
| 포맷 | 확장자 | 읽기 | 쓰기 |
|---|---|---|---|
| PPTX | .pptx | 예 | 예 |
| PPSX | .ppsx | 아니오 | 예 |
| PPTM | .pptm | 아니오 | 예 |
| POTX | .potx | 아니오 | 예 |
| ODP | .odp | 아니오 | 예 |
| FODP | .fodp | 아니오 | 예 |
참고: 라이브러리는 PPTX를 기본적으로 읽고 씁니다.
SaveFormat열거형에 나열된 다른 형식들은 API 수준에서 선언되지만 실제 내보내기 정확도는 다를 수 있습니다. 레거시.ppt바이너리 형식은 지원되지 않습니다.
오픈 소스 및 라이선스
Aspose.Slides FOSS for .NET은 MIT 라이선스 하에 배포됩니다. 전체 소스 코드는 GitHub에서 확인할 수 있습니다. 상업용 및 오픈소스 프로젝트에서 사용할 수 있으며, 코드를 수정하고 제한 없이 재배포할 수 있습니다. API 키, 라이선스 파일 또는 등록이 필요하지 않습니다.
시작하기
- 개발자 가이드: docs.aspose.org/slides/net/ – 튜토리얼 및 개념 문서.
- 지식 베이스: kb.aspose.org/slides/net/ – FAQ 및 사용 방법 기사.
- API 참조: reference.aspose.org/slides/net/ – 전체 클래스 및 메서드 참조.