1. 제품
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS for C++

C++에서 PowerPoint 프레젠테이션을 생성, 읽기 및 편집하세요 — 무료 오픈소스이며 Office 의존성이 필요 없습니다.

PowerPoint 프레젠테이션을 위한 오픈소스 C++ 라이브러리

Aspose.Slides FOSS for C++는 PowerPoint .pptx 파일을 다루기 위한 MIT 라이선스 라이브러리입니다. CMake FetchContent를 통해 통합하고 Microsoft Office나 어떤 독점 런타임도 설치하지 않고 바로 프레젠테이션을 만들고, 읽고, 편집할 수 있습니다.

이 라이브러리는 PowerPoint 자체에서 사용하는 개념 모델인 Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion을 중심으로 구성된 Presentation API를 제공합니다. 슬라이드를 추가·제거하고, AutoShape, Table, Connector를 삽입하며, 텍스트를 문자 수준에서 굵게, 기울임, 글꼴 크기 및 색상으로 서식 지정하고, 단색 또는 그라데이션 채우기를 적용하며, 시각 효과(그림자, 글로우, 블러, 반사)를 추가할 수 있습니다.

RAII 의미론은 안정적인 리소스 정리를 보장합니다: Presentation 소멸자는 모든 내부 상태를 자동으로 해제합니다. 로드 중에 발견된 알 수 없는 XML 파트는 저장 시 그대로 보존되므로, 라운드 트립 시 라이브러리가 아직 이해하지 못하는 콘텐츠가 파괴되지 않습니다. 이 라이브러리는 C++17을 지원하는 컴파일러가 필요합니다.

프레젠테이션 및 슬라이드 API

  • Create and open PPTX: Presentation() 또는 Presentation(path)를 사용해 새 프레젠테이션을 만들거나 기존 .pptx 파일을 엽니다.
  • Add and remove slides: add_clone(), remove(), remove_at()를 사용해 SlideCollection을 프로그래밍 방식으로 관리합니다.
  • AutoShapes: add_auto_shape()를 통해 사각형, 타원, 선 및 기타 ShapeType 기하 도형을 삽입합니다.
  • Tables and Connectors: add_connector()를 사용해 구조화된 테이블 도형과 도형 간 연결선을 추가합니다.
  • Speaker notes: NotesSlideManager를 통해 슬라이드별 발표자 메모를 읽고 쓸 수 있습니다.
  • Threaded comments: get_slide_comments()를 사용해 슬라이드 수준의 댓글 스레드에 접근합니다.

Aspose.Slides FOSS를 사용할 수 있는 곳

  • Report generation: Office 없이 데이터 소스로부터 브랜드 슬라이드 덱을 생성합니다.
  • Template automation: CI/CD 파이프라인에서 동적 콘텐츠로 PPTX 템플릿을 채웁니다.
  • Content migration: 기존 프레젠테이션을 읽고 슬라이드를 재구성하거나 스타일을 다시 적용합니다.
  • Embedded systems: 성능이 중요한 또는 자원이 제한된 환경에서 PPTX 파일을 처리합니다.
  • Batch processing: 대규모 슬라이드 덱 라이브러리 전체에 일관된 서식 변경을 적용합니다.

텍스트 서식 및 시각 효과

  • Character-level formatting: PortionFormat을 통해 개별 Portion 객체에 굵게, 기울임, 글꼴 크기 및 색상을 적용합니다.
  • Solid and gradient fills: FillFormatFillType을 사용해 도형 채우기를 단색 또는 다중 스톱 선형 그라데이션으로 설정합니다.
  • Shadow and glow effects: EffectFormat을 통해 모든 도형에 외부 그림자, 글로우, 블러, 반사 효과를 적용합니다.
  • Paragraph alignment: ParagraphFormatset_alignment()를 사용해 단락별로 왼쪽, 가운데, 오른쪽, 양쪽 정렬을 설정합니다.
  • Round-trip safe: 알 수 없는 XML 파트는 재저장 시 그대로 보존됩니다.

개발자 경험

Aspose.Slides FOSS는 CMake FetchContent를 통해 통합되므로 수동 다운로드나 시스템 전체 설치가 필요 없습니다. 라이브러리는 프로젝트와 함께 소스에서 빌드됩니다.

API는 PowerPoint 자체 객체 모델(Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion)을 그대로 반영하므로 PowerPoint 객체 모델에 익숙한 사람이라면 즉시 라이브러리를 사용할 수 있습니다. MIT 라이선스를 갖춘 오픈소스로 GitHub에 공개되어 있으며, C++17을 지원하는 컴파일러가 필요합니다.

프레젠테이션을 만들고 도형을 추가하기

RAII는 Presentation 소멸자가 객체가 스코프를 벗어날 때 모든 리소스를 자동으로 해제하도록 보장합니다. add_auto_shape()ShapeType 열거형을 받고, 이어서 x/y 위치와 포인트 단위의 너비/높이를 지정합니다 — shape의 text_frame을 통해 텍스트 내용을 설정할 수 있습니다.

include(FetchContent)
FetchContent_Declare(
  aspose_slides_foss
  GIT_REPOSITORY https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
  GIT_TAG main
)
FetchContent_MakeAvailable(aspose_slides_foss)
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>

int main() {
    Aspose::Slides::Foss::Presentation prs;
    auto& slide = prs.slides()[0];

    // 사각형 AutoShape 추가
    auto& shape = slide.shapes().add_auto_shape(
        Aspose::Slides::Foss::ShapeType::RECTANGLE,
        50, 50, 400, 150
    );
    shape.text_frame()->set_text("안녕, Aspose.Slides!");

    prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
    return 0;
}

텍스트 서식 지정 및 채우기 효과 적용

텍스트 서식은 Portion 수준에서 작동합니다 — 문자 실행의 가장 작은 단위입니다. 저장된 파일을 열고, 첫 번째 단락의 첫 번째 portion으로 이동한 다음 글꼴 속성을 직접 설정합니다. Shape 채우기는 독립적이며: 채우기 유형을 solid로 설정하고 색상을 지정합니다.

#include <Aspose/Slides/Foss/presentation.h>

namespace asf = Aspose::Slides::Foss;

int main() {
    asf::Presentation prs("output.pptx");
    auto& shape = prs.slides()[0].shapes()[0];
    auto& portion = shape.text_frame()
        ->paragraphs()[0].portions()[0];

    // 굵게, 18pt 텍스트
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // 도형에 단색 배경 채우기
    shape.fill_format().set_fill_type(asf::FillType::SOLID);

    prs.save("formatted.pptx", asf::SaveFormat::PPTX);
    return 0;
}

자주 묻는 질문

Aspose.Slides FOSS for C++란 무엇인가요?

Microsoft Office 없이 PowerPoint .pptx 프레젠테이션을 생성, 읽기 및 편집할 수 있는 무료 MIT 라이선스 C++ 라이브러리입니다.

지원되는 파일 형식은 무엇인가요?

PPTX가 지원되는 읽기/쓰기 형식입니다. PDF, HTML, SVG 또는 이미지로의 내보내기는 이 버전에서 제공되지 않습니다.

Microsoft Office 또는 PowerPoint가 필요합니까?

아니요. Aspose.Slides FOSS는 Microsoft Office, COM 자동화 또는 어떠한 독점 런타임에도 의존하지 않는 독립형 C++ 라이브러리입니다.

어떻게 설치하나요?

CMake FetchContent를 사용하여 라이브러리를 GitHub에서 직접 통합하십시오. 이 라이브러리는 C++17 호환 컴파일러가 필요합니다.

그림자와 글로우와 같은 시각 효과를 적용할 수 있나요?

예. 라이브러리는 EffectFormat API를 통해 모든 도형 객체에 외부 그림자, 글로우, 블러 및 반사 효과를 지원합니다.

이 라이브러리는 리소스 관리를 위해 RAII를 사용합니까?

예. Presentation 소멸자는 모든 내부 상태를 자동으로 해제하므로 명시적인 정리가 필요하지 않습니다.

PPTX를 라운드 트립하면 알 수 없는 콘텐츠가 손상될까요?

아니요. 로드 중에 발견된 알 수 없는 XML 파트는 저장 시 그대로 보존되므로, 라이브러리가 아직 이해하지 못하는 콘텐츠가 손실되지 않습니다.

소스 코드는 어디에서 찾을 수 있나요?

이 라이브러리는 MIT-licensed이며 GitHub에 호스팅됩니다. 버그 보고와 풀 리퀘스트를 환영합니다.

  

지원 및 학습 자료

 한국어