Functies en Mogelijkheden

Functies en Mogelijkheden

Aspose.Slides FOSS for C++ provides a broad set of capabilities for working with PowerPoint .pptx bestanden programmatically. Deze pagina geeft een overzicht van alle ondersteunde functionaliteitsgebieden met representatieve codevoorbeelden.


Presentatie I/O

Open een bestaande .pptx bestand of maak een nieuw bestand, en sla vervolgens op in PPTX-formaat.

#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>

#include <iostream>

using namespace Aspose::Slides::Foss;

int main() {
    // Open an existing presentation
    {
        Presentation pres("input.pptx");
        std::cout << "Slide count: " << pres.slides().size() << std::endl;
        pres.save("output.pptx", SaveFormat::PPTX);
    }

    // Create a new presentation (starts with one blank slide)
    {
        Presentation pres;
        pres.save("new.pptx", SaveFormat::PPTX);
    }

    return 0;
}

Opmerking: PPTX is het enige ondersteunde opslagformaat. Exporteren naar PDF, HTML, SVG of afbeeldingen is niet beschikbaar.

Onbekende XML-onderdelen in het bronbestand worden bij het opslaan letterlijk behouden, zodat het openen en opnieuw opslaan van een .pptx nooit inhoud zal verwijderen die de bibliotheek nog niet begrijpt.


Dia’s beheren

Dia’s toevoegen, verwijderen, dupliceren en herschikken.

#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/layout_slide.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>

#include <iostream>

using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;

    // Access the first slide
    auto& slide = pres.slides()[0];

    // Add an additional blank slide at the end
    auto* layout = dynamic_cast<ILayoutSlide*>(&pres.layout_slides()[0]);
    pres.slides().add_empty_slide(layout);

    std::cout << "Total slides: " << pres.slides().size() << std::endl;
    pres.save("multi-slide.pptx", SaveFormat::PPTX);
    return 0;
}

Vormen

AutoShapes, PictureFrames, tabellen en connectors aan een dia toevoegen.

AutoShapes

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

using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];
    // Add a rectangle at (x=50, y=50) with width=300, height=100
    auto& shape = slide.shapes().add_auto_shape(ShapeType::RECTANGLE, 50, 50, 300, 100);
    shape.text_frame()->set_text("Aspose.Slides FOSS");
    pres.save("shapes.pptx", SaveFormat::PPTX);
    return 0;
}

Tabellen

#include <Aspose/Slides/Foss/cell.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/row.h>
#include <Aspose/Slides/Foss/row_collection.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/table.h>
#include <Aspose/Slides/Foss/text_frame.h>

#include <vector>

using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];
    // Column widths and row heights in points
    std::vector<double> col_widths = {120.0, 120.0, 120.0};
    std::vector<double> row_heights = {40.0, 40.0, 40.0};
    auto& table = slide.shapes().add_table(50, 50, col_widths, row_heights);
    table.rows()[0][0].text_frame()->set_text("Product");
    table.rows()[0][1].text_frame()->set_text("Quantity");
    table.rows()[0][2].text_frame()->set_text("Price");
    pres.save("table.pptx", SaveFormat::PPTX);
    return 0;
}

Connectors

#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/connector.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>

using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];
    auto& box1 = slide.shapes().add_auto_shape(ShapeType::RECTANGLE, 50, 100, 150, 60);
    auto& box2 = slide.shapes().add_auto_shape(ShapeType::RECTANGLE, 350, 100, 150, 60);
    auto& conn = slide.shapes().add_connector(ShapeType::BENT_CONNECTOR3, 0, 0, 10, 10);
    conn.set_start_shape_connected_to(&box1);
    conn.set_start_shape_connection_site_index(3);  // right side
    conn.set_end_shape_connected_to(&box2);
    conn.set_end_shape_connection_site_index(1);    // left side
    pres.save("connector.pptx", SaveFormat::PPTX);
    return 0;
}

Tekstopmaak

Formatteer tekst op alinea- en tekenniveau met behulp van PortionFormat.

#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/nullable_bool.h>
#include <Aspose/Slides/Foss/paragraph.h>
#include <Aspose/Slides/Foss/paragraph_collection.h>
#include <Aspose/Slides/Foss/portion.h>
#include <Aspose/Slides/Foss/portion_collection.h>
#include <Aspose/Slides/Foss/portion_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>

using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];
    auto& shape = slide.shapes().add_auto_shape(ShapeType::RECTANGLE, 50, 50, 500, 150);
    shape.text_frame()->set_text("Bold blue heading");

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

    pres.save("text.pptx", SaveFormat::PPTX);
    return 0;
}

NullableBool::TRUE stelt de eigenschap expliciet in; NullableBool::NOT_DEFINED erft van de slide‑master.


Vultypen

Pas effen, verloop, patroon of afbeeldingvullingen toe op vormen.

#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.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>

using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];
    auto& shape = slide.shapes().add_auto_shape(ShapeType::RECTANGLE, 50, 50, 300, 150);

    // Solid fill
    shape.fill_format().set_fill_type(FillType::SOLID);
    shape.fill_format().solid_fill_color().set_color(Color::from_argb(255, 30, 120, 200));

    pres.save("fill.pptx", SaveFormat::PPTX);
    return 0;
}

Visuele effecten

Pas buitenschaduw, gloed, zachte rand, vervaging, reflectie en binnenschaduw toe op vormen.

De effecteigenschappen zijn toegankelijk via shape.effect_format(). De subobjecten die worden geretourneerd door outer_shadow_effect(), glow_effect(), en soortgelijke methoden zijn pointers — roep ze aan met ->.

#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/effect_format.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.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>

using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];
    auto& shape = slide.shapes().add_auto_shape(ShapeType::RECTANGLE, 100, 100, 200, 100);

    auto& ef = shape.effect_format();

    // Outer drop shadow
    ef.enable_outer_shadow_effect();
    auto* shadow = ef.outer_shadow_effect();
    shadow->set_blur_radius(10);
    shadow->set_direction(315);
    shadow->set_distance(8);
    shadow->shadow_color().set_color(Color::from_argb(128, 0, 0, 0));

    // Glow effect
    ef.enable_glow_effect();
    auto* glow = ef.glow_effect();
    glow->set_radius(15);
    glow->color().set_color(Color::from_argb(200, 255, 200, 0));

    pres.save("effects.pptx", SaveFormat::PPTX);
    return 0;
}

3D Formatting

Pas 3D-afschuiningsrand, camera, lichtopstelling, materiaal en extrusiediepte toe via shape.three_d_format(). Dit regelt de visuele diepte en het verlichtingsmodel voor vormweergave in PPTX-viewers die 3D-effecten ondersteunen.

#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/bevel_preset_type.h>
#include <Aspose/Slides/Foss/camera_preset_type.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/fill_format.h>
#include <Aspose/Slides/Foss/fill_type.h>
#include <Aspose/Slides/Foss/drawing/color.h>
#include <Aspose/Slides/Foss/light_rig_preset_type.h>
#include <Aspose/Slides/Foss/lighting_direction.h>
#include <Aspose/Slides/Foss/material_preset_type.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/three_d_format.h>

using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;

int main() {
    Presentation pres;
    auto& slide = pres.slides()[0];
    auto& shape = slide.shapes().add_auto_shape(ShapeType::RECTANGLE, 100, 100, 200, 100);

    shape.fill_format().set_fill_type(FillType::SOLID);
    shape.fill_format().solid_fill_color().set_color(Color::from_argb(255, 20, 70, 160));

    auto& tdf = shape.three_d_format();
    tdf.bevel_top().set_bevel_type(BevelPresetType::CIRCLE);
    tdf.bevel_top().set_width(10);
    tdf.bevel_top().set_height(5);
    tdf.camera().set_camera_type(CameraPresetType::PERSPECTIVE_ABOVE);
    tdf.light_rig().set_light_type(LightRigPresetType::BALANCED);
    tdf.light_rig().set_direction(LightingDirection::TOP);
    tdf.set_depth(20);
    tdf.set_material(MaterialPresetType::METAL);

    pres.save("3d.pptx", SaveFormat::PPTX);
    return 0;
}

Sprekersnotities

Voeg notities toe aan elke dia met behulp van notes_slide_manager().

#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/i_notes_slide.h>
#include <Aspose/Slides/Foss/i_notes_slide_manager.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>

using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;
    auto* notes = pres.slides()[0].notes_slide_manager().add_notes_slide();
    notes->notes_text_frame().set_text("Key talking point: emphasize the ROI benefit.");
    pres.save("notes.pptx", SaveFormat::PPTX);
    return 0;
}

Opmerkingen

Voeg gestructureerde opmerkingen toe met auteurinformatie en dia‑positie.

#include <Aspose/Slides/Foss/comment.h>
#include <Aspose/Slides/Foss/comment_author.h>
#include <Aspose/Slides/Foss/comment_author_collection.h>
#include <Aspose/Slides/Foss/comment_collection.h>
#include <Aspose/Slides/Foss/drawing/point_f.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>

#include <chrono>

using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;

int main() {
    Presentation pres;
    auto& author = pres.comment_authors().add_author("Jane Smith", "JS");
    auto& slide = pres.slides()[0];
    author.comments().add_comment(
        "Please verify this data before the presentation.",
        slide,
        PointF(2.0f, 2.0f),
        std::chrono::system_clock::now()
    );
    pres.save("comments.pptx", SaveFormat::PPTX);
    return 0;
}

Ingesloten afbeeldingen

Integreer een afbeelding uit een bestand in de presentatie en voeg deze toe aan een dia als een PictureFrame.

#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/image_collection.h>
#include <Aspose/Slides/Foss/picture_frame.h>
#include <Aspose/Slides/Foss/pp_image.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 <fstream>
#include <iterator>
#include <vector>

using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;
    // Read image bytes from file
    std::ifstream f("logo.png", std::ios::binary);
    std::vector<std::uint8_t> data(
        (std::istreambuf_iterator<char>(f)),
        std::istreambuf_iterator<char>());

    auto& img = pres.images().add_image(data);
    pres.slides()[0].shapes().add_picture_frame(
        ShapeType::RECTANGLE, 50, 50, 200, 150, img);
    pres.save("with-image.pptx", SaveFormat::PPTX);
    return 0;
}

Documenteigenschappen

Lees en schrijf kern-, app- en aangepaste documenteigenschappen.

#include <Aspose/Slides/Foss/document_properties.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>

#include <any>
#include <string>

using namespace Aspose::Slides::Foss;

int main() {
    Presentation pres;
    auto& props = pres.document_properties();

    // Core properties
    props.set_title("Q1 Results");
    props.set_author("Finance Team");
    props.set_subject("Quarterly Review");
    props.set_keywords("Q1, finance, results");

    // Custom property
    props.set_custom_property_value("ReviewedBy", std::any(std::string("Legal Team")));

    pres.save("deck.pptx", SaveFormat::PPTX);
    return 0;
}

Bekende beperkingen

De volgende gebieden zijn niet beschikbaar in deze editie:

GebiedStatus
GrafiekenNiet geïmplementeerd
SmartArtNiet geïmplementeerd
Animaties en overgangenNiet geïmplementeerd
PDF / HTML / SVG / afbeeldingsexportNiet geïmplementeerd (alleen PPTX)
VBA-macro’sNiet geïmplementeerd
Digitale handtekeningenNiet geïmplementeerd
Hyperlinks en actieregelsNiet geïmplementeerd
OLE-objectenNiet geïmplementeerd
Wiskundige tekstNiet geïmplementeerd

Zie ook

 Nederlands