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

Aspose.Slides FOSS per C++

Crea, leggi e modifica presentazioni PowerPoint da C++ — gratuito e open-source, senza dipendenza da Office.

Libreria C++ open-source per presentazioni PowerPoint

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.

API di presentazione e slide

  • Crea e apri PPTX: Crea nuove presentazioni o apri file .pptx esistenti tramite Presentation() o Presentation(path).
  • Aggiungi e rimuovi diapositive: Gestisci programmaticamente il SlideCollection con add_empty_slide(), remove() e remove_at().
  • AutoShapes: Inserisci rettangoli, ellissi, linee e altre geometrie ShapeType tramite add_auto_shape().
  • Tabelle e connettori: Aggiungi forme di tabelle strutturate e linee di connettore tra le forme tramite add_connector().
  • Speaker notes: Leggi e scrivi le note del relatore per diapositiva tramite NotesSlideManager.
  • Commenti annidati: Accedi ai thread di commenti iterando pres.comment_authors() e i relativi commenti.

Dove Aspose.Slides FOSS può essere utilizzato

  • Generazione di report: Crea presentazioni con slide brandizzate da fonti di dati senza Office.
  • Automazione dei modelli: Riempire i modelli PPTX con contenuti dinamici nelle pipeline CI/CD.
  • Migrazione dei contenuti: Leggi le presentazioni esistenti e ristruttura o ridisegna le diapositive.
  • Sistemi embedded: Elabora file PPTX in ambienti critici per le prestazioni o con risorse limitate.
  • Batch processing: Applica modifiche di formattazione uniformi a grandi librerie di presentazioni.

Formattazione del testo e effetti visivi

  • Formattazione a livello di carattere: Applica grassetto, corsivo, dimensione del carattere e colore a singoli oggetti Portion tramite PortionFormat.
  • Riempimenti solidi e sfumati: Imposta il riempimento della forma su un colore solido o su una sfumatura lineare a più fermate usando FillFormat e FillType.
  • Shadow and glow effects: Applica ombra esterna, bagliore, sfocatura e riflessione a qualsiasi forma tramite EffectFormat.
  • Allineamento del paragrafo: Imposta l’allineamento a sinistra, al centro, a destra o giustificato per ogni paragrafo usando ParagraphFormat e set_alignment().
  • Round-trip safe: Le parti sconosciute XML vengono preservate alla lettera al momento del nuovo salvataggio.

Esperienza dello sviluppatore

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.

Crea una presentazione e aggiungi una forma

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)
 

Formatta il testo e applica un effetto di riempimento

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

Domande Frequenti

Cos’è Aspose.Slides FOSS per C++?

È una libreria C++ gratuita, con licenza MIT, per creare, leggere e modificare presentazioni PowerPoint .pptx senza richiedere Microsoft Office.

Quali formati di file sono supportati?

.pptx è il formato di lettura/scrittura supportato. L’esportazione in PDF, HTML, SVG o immagini non è disponibile in questa edizione.

Richiede Microsoft Office o PowerPoint?

No. Aspose.Slides FOSS è una libreria C++ autonoma senza dipendenze da Microsoft Office, automazione COM o qualsiasi runtime proprietario.

Come lo installo?

Usa CMake FetchContent per integrare la libreria direttamente da GitHub. La libreria richiede un compilatore conforme a C++20.

Posso applicare effetti visivi come ombra e bagliore?

Sì. La libreria supporta effetti di ombra esterna, bagliore, sfocatura e riflessione su qualsiasi oggetto forma tramite l’API EffectFormat.

La libreria utilizza RAII per la gestione delle risorse?

Sì. Il distruttore Presentation rilascia automaticamente tutto lo stato interno, quindi non è necessaria alcuna pulizia esplicita.

Il round‑tripping di un PPTX distruggerà contenuti sconosciuti?

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.

Dove posso trovare il codice sorgente?

La libreria è rilasciata sotto licenza MIT e ospitata su GitHub. Segnalazioni di bug e pull request sono benvenute.

  

Risorse di Supporto e Apprendimento

 Italiano