Introduzione
Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx file in C++ nativo, senza dipendenza da Microsoft Office o da alcun runtime proprietario.
La libreria è progettata per gli sviluppatori che hanno bisogno di generare o manipolare file di presentazione in modo programmatico: automatizzare le diapositive a partire dai dati, estrarre testo e metadati da file PPTX caricati, costruire pipeline di reporting basate su presentazioni, o incorporare la creazione di presentazioni in applicazioni desktop e server. Perché aspose_slides_foss è costruita con CMake, si compila e si distribuisce su Windows, macOS e Linux.
Caratteristiche principali
- Supporto PPTX a ciclo completo: Apri qualsiasi
.pptxfile, modifica il suo contenuto e salvalo nuovamente senza perdere le parti XML sconosciute che la libreria non comprende ancora. - Gestione delle diapositive: Aggiungi, rimuovi e itera le diapositive usando
prs.slides(); la presentazione inizia con una diapositiva vuota dopo aver costruito unPresentation. - AutoShape, Tabelle e Connettori: Inserisci forme tramite
slide.shapes().add_auto_shape(), dati tabulari tramiteslide.shapes().add_table(), e connettori visivi tra forme tramiteslide.shapes().add_connector(). - Formattazione di testo avanzata: Formatta il testo a livello di carattere con
PortionFormat: dimensione del carattere, grassetto, corsivo, sottolineato e colore ARGB tramiteFillType::SOLIDeColorFormat. - Tipi di riempimento: Applica
FillType::SOLID,Gradient,Pattern, oPictureriempie qualsiasi forma. - Effetti visivi: Ombra esterna, bagliore, bordo morbido, sfocatura, riflessione e ombra interna tramite
shape.effect_format(). - 3D formatting: Smussatura, fotocamera, impianto di luci, materiale e profondità di estrusione tramite
shape.three_d_format(). - Note del relatore: Allega il testo delle note a ogni diapositiva tramite
notes_slide_manager().add_notes_slide(). - Commenti in thread: Aggiungi commenti con metadati dell’autore e posizione della diapositiva.
- Immagini incorporate: Incorpora da percorso file, buffer di memoria o stream.
- Proprietà del documento: Leggi e scrivi le proprietà core, app e custom.
Iniziare
Aggiungi la libreria tramite CMake. È richiesto un compilatore C++17.
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)
target_link_libraries(your_target PRIVATE aspose_slides_foss)
Crea la tua prima presentazione con una forma e salvala:
#include <Aspose/Slides/Foss/presentation.h>
int main() {
using namespace Aspose::Slides::Foss;
Presentation prs;
auto& slide = prs.slides()[0];
auto& shape = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 400, 120
);
shape.text_frame()->set_text("Hello from Aspose.Slides FOSS!");
prs.save("hello.pptx", SaveFormat::PPTX);
return 0;
}
Il Presentation il distruttore rilascia automaticamente tutte le risorse interne quando esce dal contesto.
Esempio di formattazione del testo
#include <Aspose/Slides/Foss/presentation.h>
using namespace Aspose::Slides::Foss;
Presentation prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 500, 150
);
shape.text_frame()->set_text("Bold heading in corporate blue");
auto& fmt = shape.text_frame()->paragraphs()[0].portions()[0].portion_format();
fmt.set_font_height(28);
fmt.set_font_bold(NullableBool::TRUE);
fmt.fill_format().set_fill_type(FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(Color::from_argb(255, 0, 70, 127));
prs.save("formatted.pptx", SaveFormat::PPTX);
Limitazioni attuali
Le seguenti aree generano eccezioni in questa versione:
- Grafici, SmartArt e oggetti OLE
- Animazioni e transizioni delle diapositive
- Esporta in PDF, HTML, SVG o formati immagine
- Collegamenti ipertestuali, impostazioni di azione, macro VBA e firme digitali
Le parti XML sconosciute incontrate durante il caricamento vengono preservate alla lettera al salvataggio, così i file PPTX prodotti da altri strumenti possono essere riutilizzati in modo sicuro.