1. Products
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS pentru C++

Creați, citiți și editați prezentări PowerPoint din C++ — gratuit și open-source, fără dependență de Office.

Bibliotecă C++ open-source pentru prezentări PowerPoint

Aspose.Slides FOSS pentru C++ este o bibliotecă licențiată MIT pentru lucrul cu fișiere PowerPoint .pptx. Integrați‑o prin CMake FetchContent și începeți imediat să creați, să citiți și să editați prezentări fără a instala Microsoft Office sau orice runtime proprietar.

Biblioteca expune un API de Prezentare construit în jurul Presentation, Slide, ShapeCollection, TextFrame, Paragraph și Portion, modelul conceptual utilizat de PowerPoint însuși. Adăugați și eliminați slide-uri, inserați AutoShapes, Tables și Connectors, formatați textul la nivel de caracter cu bold, italic, dimensiunea și culoarea fontului, aplicați umpleri solide sau degrade și adăugați efecte vizuale (shadow, glow, blur, reflection).

Semantica RAII asigură curățarea fiabilă a resurselor: destructorul Presentation eliberează automat tot starea internă. Părțile necunoscute XML întâlnite în timpul încărcării sunt păstrate literalmente la salvare, astfel încât procesul de round-tripping nu distruge niciodată conținutul pe care biblioteca încă nu îl înțelege. Biblioteca necesită un compilator compatibil cu C++20. Pentru funcționalități suplimentare, vedeți Aspose.Slides for C++ enterprise edition.

API pentru prezentări și diapozitive

  • Create and open PPTX: Creați prezentări noi sau deschideți fișiere .pptx existente prin Presentation() sau Presentation(path).
  • Adăugați și eliminați diapozitive: Gestionați programatic SlideCollection cu add_empty_slide(), remove() și remove_at().
  • AutoShapes: Introduceți dreptunghiuri, elipse, linii și alte ShapeType geometrii prin add_auto_shape().
  • Tabele și Conectori: Adăugați forme de tabel structurate și linii de conectare între forme prin add_connector().
  • Speaker notes: Citiți și scrieți notele de vorbitor pe fiecare diapozitiv prin NotesSlideManager.
  • Threaded comments: Accesați firele de comentarii iterând pres.comment_authors() și comentariile asociate.

Unde Aspose.Slides FOSS poate fi utilizat

  • Generarea rapoartelor: Construiește seturi de diapozitive branduite din surse de date fără Office.
  • Automatizarea șabloanelor: Completați șabloanele PPTX cu conținut dinamic în fluxurile CI/CD.
  • Migrarea conținutului: Citește prezentările existente și restructurează sau re‑stilizează diapozitivele.
  • Sisteme încorporate: Procesează fișiere PPTX în medii critice din punct de vedere al performanței sau cu resurse limitate.
  • Procesare în lot: Aplicați modificări uniforme de formatare în biblioteci mari de prezentări.

Formatare text și efecte vizuale

  • Formatare la nivel de caracter: Aplicați îngroșat, italic, dimensiunea fontului și culoarea la obiecte individuale Portion prin PortionFormat.
  • Umpleri solide și gradient: Setează umplerea formei la o culoare solidă sau la un gradient liniar cu mai multe opriri utilizând FillFormat și FillType.
  • Efecte de umbră și strălucire: Aplicați umbra exterioară, strălucirea, estomparea și reflexia la orice formă prin EffectFormat.
  • Alinierea paragrafelor: Setați alinierea la stânga, centru, dreapta sau justificată pentru fiecare paragraf utilizând ParagraphFormat și set_alignment().
  • Round-trip safe: Părțile necunoscute XML sunt păstrate literalmente la re-salvare.

Experiența dezvoltatorului

Aspose.Slides FOSS se integrează prin CMake FetchContent, astfel încât nu este necesar să descărcați manual sau să instalați la nivel de sistem. Biblioteca se compilează din sursă alături de proiectul dumneavoastră.

API-ul reflectă modelul de obiecte propriu al PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), astfel încât oricine este familiarizat cu modelul de obiecte PowerPoint poate folosi biblioteca imediat. Este licențiat MIT, open-source pe GitHub și necesită un compilator compatibil cu C++20.

Creează o prezentare și adaugă o formă

RAII asigură că destructorul Presentation eliberează toate resursele automat când obiectul iese din domeniu. add_auto_shape() primește un enum ShapeType, apoi poziția x/y și lățimea/înălțimea în puncte — proprietatea text_frame a formei oferă acces pentru a seta conținutul textului.

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];

    // Add a rectangle AutoShape
    auto& shape = slide.shapes().add_auto_shape(
        Aspose::Slides::Foss::ShapeType::RECTANGLE,
        50, 50, 400, 150
    );
    shape.text_frame()->set_text("Hello, Aspose.Slides!");

    prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
    return 0;
}
 ```cmake
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)
 

Formatează textul și aplică un efect de umplere

Formatarea textului funcționează la nivelul Portion — cea mai mică unitate a unui șir de caractere. Deschide fișierul salvat, navighează la prima parte a primului paragraf și setează proprietățile fontului direct. Umplerea formei este independentă: setează tipul de umplere la solid și atribuie o culoare.

#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];

    // Bold, 18pt text
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // Solid background fill on the shape
    shape.fill_format().set_fill_type(asf::FillType::SOLID);

    prs.save("formatted.pptx", asf::SaveFormat::PPTX);
    return 0;
}
 ```cpp
#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];

    // Bold, 18pt text
    portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
    portion.portion_format().set_font_height(18);

    // Solid background fill on the shape
    shape.fill_format().set_fill_type(asf::FillType::SOLID);

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

Frequently Asked Questions

Ce este Aspose.Slides FOSS pentru C++?

Este o bibliotecă gratuită, licențiată MIT, C++ pentru crearea, citirea și editarea prezentărilor PowerPoint .pptx fără a necesita Microsoft Office.

Ce formate de fișiere sunt suportate?

.pptx este formatul suportat pentru citire/scriere. Exportul în PDF, HTML, SVG sau imagini nu este disponibil în această ediție.

Necesită Microsoft Office sau PowerPoint?

Nu. Aspose.Slides FOSS este o bibliotecă C++ independentă, fără dependență de Microsoft Office, automatizare COM sau orice runtime proprietar.

Cum îl instalez?

Folosiți CMake FetchContent pentru a integra biblioteca direct de pe GitHub. Biblioteca necesită un compilator compatibil cu C++20.

Pot aplica efecte vizuale precum umbra și strălucirea?

Da. Biblioteca suportă efecte de umbră externă, strălucire, estompare și reflexie pe orice obiect de tip formă prin API-ul EffectFormat.

Folosește biblioteca RAII pentru gestionarea resurselor?

Da. Destructorul Presentation eliberează automat toate stările interne, astfel că nu este necesară o curățare explicită.

Va distruge round-tripping-ul unui PPTX conținutul necunoscut?

Nu. Părțile necunoscute XML întâlnite în timpul încărcării sunt păstrate literalmente la salvare, astfel că conținutul pe care biblioteca încă nu îl înțelege nu se pierde niciodată.

Unde pot găsi codul sursă?

Biblioteca este licențiată sub MIT și găzduită pe GitHub. Raportările de erori și cererile de pull sunt binevenite.

  

Support and Learning Resources

 Română