Merkmale und Fähigkeiten
Merkmale und Fähigkeiten
Aspose.Slides FOSS for C++ provides a broad set of capabilities for working with PowerPoint .pptx Diese Seite listet alle unterstützten Feature-Bereiche mit repräsentativen Codebeispielen auf.
Präsentation I/O
Öffnen Sie eine vorhandene .pptx Datei oder erstellen Sie eine neue, dann speichern Sie wieder in 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;
}Anmerkung: PPTX ist das einzige unterstützte Speicherformat. Export in PDF, HTML, SVG oder Bilder nicht verfügbar.
Unbekannte XML-Teile in der Quelldatei werden wörtlich bei Save erhalten, also öffnen und erneut speichern Sie eine .pptx Wir werden niemals Inhalte entfernen, die die Bibliothek noch nicht versteht.
Verwalten von Folienbildern
Slides hinzufügen, entfernen, klonen und neu ordnen.
#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>
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;
}Formen und Formstücke
Fügen Sie AutoShapes, PictureFrames und Tabellen zu einer Folie hinzu.
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>
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 und Daten
#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>
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;
}Anschlüsse
#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>
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;
}Textformatierung
Text auf Absatz- und Zeichenebene formatieren, indem 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 die Eigenschaft ausdrücklich festlegt; NullableBool::NOT_DEFINED Erbt vom Slide-Master.
Ausfüllungstypen
Anwendungen für die Formung von Fassaden, Gradienten, Mustern oder Bildern.
#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>
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;
}Bildwirkung
Auf Formen außenlich Schatten, Glanz, weiche Kanten, Unschärfe, Reflexionen und innere Schattungen aufbringen.
Die Wirkungsmerkmale sind über die shape.effect_format().Die von der Kommission zurückgegebenen Unterobjekte werden durch die outer_shadow_effect(), glow_effect(), und ähnliche Methoden sind Zeiger rufen Sie sie an. ->.
#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>
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
3D-Kegel, Kamera, Lichtgerät, Material und Extrusionstiefe über shape.three_d_format().Diese steuert die Bildtiefe und das Lichtmodell für die Gestaltenausgabe in PPTX-Viewern, die 3D-Effekte unterstützen.
#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>
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;
}Anmerkungen des Redners
Notizen an jede Folie mit Hilfe von 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>
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;
}Anmerkungen
Hinzufügen von Threaded-Kommentaren mit Autorinformationen und Slideposition.
#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>
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;
}Eingebettete Bilder
Einbinden eines Bildes aus einer Datei in die Präsentation und fügen Sie es als Slide hinzu. 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>
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;
}Dokument-Eigenschaften
Lesen und Schreiben von Kern-, App- und benutzerdefinierten Dokumenteneigenschaften.
#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>
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;
}Bekannte Grenzen
Folgende Bereiche sind in dieser Ausgabe nicht verfügbar:
| Fläche | Status der |
|---|---|
| Tabellen und Grafiken | Nicht umgesetzt |
| SmartArt | Nicht umgesetzt |
| Animationen und Übergänge | Nicht umgesetzt |
| PDF / HTML / SVG / Bild-Export zu verwenden . | Nicht umgesetzt (nur PPTX) |
| VBA-Makros | Nicht umgesetzt |
| Digitale Unterschriften | Nicht umgesetzt |
| Hyperlinks und Aktionseinstellungen | Nicht umgesetzt |
| OLE-Objekte | Nicht umgesetzt |
| Mathematischer Text | Nicht umgesetzt |
Siehe auch:
- Wie man anfängt:Installation und Erstprogramm
- Referenz für die API: Klasse- und Methodenbezug
- Anleitungen zur Handhabung: Aufgabenorientierte Artikel