Aspose.Slides FOSS per C++ è una libreria con licenza MIT per lavorare con file .pptx di PowerPoint. Integrala tramite CMake FetchContent e inizia subito a creare, leggere e modificare presentazioni senza installare Microsoft Office o alcun runtime proprietario.
La libreria espone un’API di Presentazione costruita attorno a Presentation, Slide, ShapeCollection, TextFrame, Paragraph e Portion, il modello concettuale usato da PowerPoint stesso. Aggiungi e rimuovi diapositive, inserisci AutoShapes, Tabelle e Connettori, formatta il testo a livello di carattere con grassetto, corsivo, dimensione e colore del carattere, applica riempimenti solidi o sfumati e aggiungi effetti visivi (ombra, bagliore, sfocatura, riflessione).
Le semantiche RAII garantiscono una pulizia affidabile delle risorse: il distruttore Presentation rilascia automaticamente tutto lo stato interno. Le parti XML sconosciute incontrate durante il caricamento vengono preservate alla lettera al salvataggio, così il round‑tripping non distrugge mai contenuti che la libreria non comprende ancora. La libreria richiede un compilatore compatibile con C++20. Per funzionalità aggiuntive, vedere Aspose.Slides for C++ enterprise edition.
.pptx esistenti tramite Presentation() o Presentation(path).SlideCollection con add_empty_slide(), remove() e remove_at().ShapeType tramite add_auto_shape().add_connector().NotesSlideManager.pres.comment_authors() e i relativi commenti.Portion tramite PortionFormat.FillFormat e FillType.EffectFormat.ParagraphFormat e set_alignment().Aspose.Slides FOSS si integra tramite CMake FetchContent, quindi non è necessario scaricare manualmente né installare a livello di sistema. La libreria viene compilata dal sorgente insieme al tuo progetto.
L’API rispecchia il modello di oggetti di PowerPoint (Presentation, Slide, ShapeCollection, TextFrame, Paragraph, Portion), quindi chiunque conosca il modello di oggetti di PowerPoint può utilizzare la libreria immediatamente. È con licenza MIT, open-source su GitHub, e richiede un compilatore compatibile con C++20.
RAII garantisce che il distruttore Presentation rilasci tutte le risorse automaticamente quando l’oggetto esce dallo scope. add_auto_shape() accetta un enum ShapeType, poi la posizione x/y e la larghezza/altezza in punti — il text_frame della forma fornisce l’accesso per impostare il contenuto del testo.
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)
La formattazione del testo funziona a livello di Portion — l’unità più piccola di una sequenza di caratteri. Apri il file salvato, naviga alla prima parte del primo paragrafo e imposta direttamente le proprietà del carattere. Il riempimento della forma è indipendente: imposta il tipo di riempimento su solido e assegna un colore.
#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;
}
È una libreria C++ gratuita, con licenza MIT, per creare, leggere e modificare presentazioni PowerPoint .pptx senza richiedere Microsoft Office.
.pptx è il formato di lettura/scrittura supportato. L’esportazione in PDF, HTML, SVG o immagini non è disponibile in questa edizione.
No. Aspose.Slides FOSS è una libreria C++ autonoma senza dipendenze da Microsoft Office, automazione COM o qualsiasi runtime proprietario.
Usa CMake FetchContent per integrare la libreria direttamente da GitHub. La libreria richiede un compilatore conforme a C++20.
Sì. La libreria supporta effetti di ombra esterna, bagliore, sfocatura e riflessione su qualsiasi oggetto forma tramite l’API EffectFormat.
Sì. Il distruttore Presentation rilascia automaticamente tutto lo stato interno, quindi non è necessaria alcuna pulizia esplicita.
No. Le parti sconosciute di XML incontrate durante il caricamento vengono preservate alla lettera al salvataggio, quindi il contenuto che la libreria non comprende ancora non viene mai perso.
La libreria è rilasciata sotto licenza MIT e ospitata su GitHub. Segnalazioni di bug e pull request sono benvenute.