Funkcijas un iespējas

Funkcijas un iespējas

Aspose.Slides FOSS for C++ provides a broad set of capabilities for working with PowerPoint .pptx failus programmatiski. Šajā lapā ir uzskaitītas visas atbalstītās funkcionalitātes jomas ar atbilstošiem koda piemēriem.


Prezentācijas I/O

Atveriet esošu .pptx failu vai izveidojiet jaunu, pēc tam saglabājiet atpakaļ PPTX formātā.

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

Piezīme: PPTX ir vienīgais atbalstītais saglabāšanas formāts. Eksportēšana uz PDF, HTML, SVG vai attēliem nav pieejama.

Nezināmas XML daļas avota failā tiek saglabātas burtiski saglabāšanas laikā, tāpēc atverot un pārsaglabājot .pptx nekad neizņems saturu, ko bibliotēka vēl nesaprot.


Slaidu pārvaldība

Pievienojiet, noņemiet, klonējiet un pārkārtot slaidus.

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

Formas

Pievienojiet slaidam AutoShapes, PictureFrames, tabulas un savienotājus.

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

Tabulas

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

Savienotāji

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

Teksta formatēšana

Formatējiet tekstu paragrāfa un rakstzīmju līmenī, izmantojot 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 iestata īpašību tieši; NullableBool::NOT_DEFINED manto no slaidu mastera.


Aizpildījuma veidi

Lietojiet vienkāršu, gradienta, rakstu vai attēla aizpildījumus formām.

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

Vizuālie efekti

Lietojiet ārējo ēnu, spīdumu, mīkstu malu, izpludināšanu, atspoguļojumu un iekšējo ēnu formām.

Efekta īpašības ir pieejamas caur shape.effect_format(). Apakšobjekti, ko atgriež outer_shadow_effect(), glow_effect(), un līdzīgiem metodēm ir rādītāji — izsauc tos ar ->.

#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

Pielietojiet 3D slīpumu, kameru, apgaismojuma rigu, materiālu un izspiešanas dziļumu, izmantojot shape.three_d_format(). Tas kontrolē vizuālo dziļumu un apgaismojuma modeli figūru renderēšanai PPTX skatītājos, kas atbalsta 3D efektus.

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

Runātāja piezīmes

Pievienojiet piezīmes jebkuram slaidam, izmantojot 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;
}

Komentāri

Pievienojiet pavedienveida komentārus ar autora informāciju un slaida pozīciju.

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

Iegultie attēli

Iegult attēlu no faila prezentācijā un pievienot to slaidam kā 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;
}

Dokumenta īpašības

Lasiet un rakstiet galvenās, lietojumprogrammas un pielāgotās dokumenta īpašības.

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

Zināmie ierobežojumi

Šajās vietās šajā izdevumā nav pieejamas:

LaukumsStatuss
DiagrammasNav īstenots
SmartArtNav īstenots
Animācijas un pārejasNav īstenots
PDF / HTML / SVG / attēlu eksportēšanaNav īstenots (tikai PPTX)
VBA makroNav īstenots
Digitālie parakstiNav īstenots
Hipersaites un darbības iestatījumiNav īstenots
OLE objektiNav īstenots
Matemātiskais tekstsNav īstenots

Skatiet arī

 Latviešu