Funktioner och möjligheter

Funktioner och möjligheter

Funktioner och möjligheter

Aspose.Slides FOSS for C++ provides a broad set of capabilities for working with PowerPoint .pptx filer programatiskt. Denna sida listar alla stödda funktionsområden med representativa kodexempel.


Presentation I/O

Öppna en befintlig .pptx fil eller skapa en ny, och spara sedan tillbaka till PPTX-format.

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

Obs: PPTX är det enda stödda sparformatet. Export till PDF, HTML, SVG eller bilder är inte tillgängligt.

Okända XML-delar i källfilen bevaras ordagrant vid sparning, så att öppna och spara om en .pptx kommer aldrig att ta bort innehåll som biblioteket ännu inte förstår.


Hantera bilder

Lägg till, ta bort, klona och omordna bilder.

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

Former

Lägg till AutoShapes, PictureFrames, tabeller och anslutningar på en bild.

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

Tabeller

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

Anslutningar

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

Textformatering

Formatera text på stycke- och teckennivå med 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 sätter egenskapen explicit; NullableBool::NOT_DEFINED ärver från bildens master.


Fylltyper

Applicera solida, gradient-, mönster- eller bildfyllningar på former.

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

Visuella effekter

Applicera yttre skugga, glöd, mjuk kant, oskärpa, reflektion och inre skugga på former.

Effektegenskaperna är åtkomliga via shape.effect_format(). Subobjekten som returneras av outer_shadow_effect(), glow_effect(), och liknande metoder är pekare — anropa dem med ->.

#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

Applicera 3D-avfasning, kamera, ljusrigg, material och extruderingdjup via shape.three_d_format(). Detta styr den visuella djupet och ljusmodellen för formrendering i PPTX‑visare som stödjer 3D‑effekter.

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

Talarnoter

Bifoga anteckningar till vilken bild som helst med hjälp av 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;
}

Kommentarer

Lägg till trådade kommentarer med författarinformation och bildposition.

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

Inbäddade bilder

Bädda in en bild från en fil i presentationen och lägg till den på en bild som en 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;
}

Dokumentegenskaper

Läs och skriv kärn-, app- och anpassade dokumentegenskaper.

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

Kända begränsningar

Följande områden är inte tillgängliga i den här utgåvan:

OmrådeStatus
DiagramEj implementerad
SmartArtEj implementerad
Animationer och övergångarEj implementerad
PDF / HTML / SVG / bildexportEj implementerad (endast PPTX)
VBA-makronEj implementerad
Digitala signaturerEj implementerad
Hyperlänkar och åtgärdsinställningarEj implementerad
OLE-objektEj implementerad
Matematisk textEj implementerad

Se även

 Svenska