Introducció
Aspose.Slides FOSS for C++ is now available: a free, MIT-licensed library for creating, reading, and editing PowerPoint .pptx arxius en C++ nativa, sense dependència de Microsoft Office o qualsevol temps d’execució propietari.
La biblioteca està dissenyada per a desenvolupadors que necessiten generar o manipular fitxers de presentació programàticament: automatizar diapositives des de dades, extraure text i metadades dels arxius PPTX carregats, construir pipelines d’informes basades en presentacions o incrustar la creació de representacions en aplicacions de desktop i servidor. aspose_slides_foss és construït amb CMake, compila i desplega en Windows, macOS i Linux.
Característiques clau
- Suport PPTX complet d’anar i venir:Obre qualsevol:
.pptxarxiu, modificar el seu contingut i guardar-lo de nou sense perdre parts XML desconegudes que la biblioteca encara no entén. - Gestió de diapositives: Agregar, eliminar i iterar diapositives utilitzant
prs.slides();La presentació comença amb una diapositiva en blanc després de construir un model d’una pàgina.Presentation. - AutoShapes, taules i connectors: Insertar formes a través de:
slide.shapes().add_auto_shape(), dades tabulars viaslide.shapes().add_table(), i connectors visuals entre formes a través deslide.shapes().add_connector(). - Formateig de text enriqueixut: Formatar text a nivell de caràcters amb:
PortionFormat: mida de font, en negrit, cursiva, sota l’índex i color ARGB viaFillType::SOLIDi de laColorFormat. - Tipus de rellotge: Aplicar
FillType::SOLID,FillType::GRADIENT,FillType::PATTERN, oFillType::PICTUREs’omple a qualsevol forma. - Efectes visuals: Ombre exterior, brillantor, bord suau, desfoc, reflexió i ombra interior via
shape.effect_format(). - 3D formatting: Bevel, càmera, plataforma de llum, material i profunditat d’extrusió via
shape.three_d_format(). - Notes de l’alfabet: Ajuntar text de les notes a cada diapositiva via
notes_slide_manager().add_notes_slide(). - Comentaris en línia: Agregar comentaris amb metadades de l’autor i posició de diapositives.
- Imatges incrustades: Embed des de la ruta del fitxer, el buffer de memòria o l’enviament.
- Propietats del document: Llegir i escriure propietats de nucli, aplicacions i personalitzades.
Com començar a treballar
S’ha d’afegir la biblioteca a través de CMake. Es requereix un compilador C++20.
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)
target_link_libraries(your_target PRIVATE aspose_slides_foss)
Crea la teva primera presentació amb una forma i guarda-la:
#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() {
using namespace Aspose::Slides::Foss;
Presentation prs;
auto& slide = prs.slides()[0];
auto& shape = slide.shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 400, 120
);
shape.text_frame()->set_text("Hello from Aspose.Slides FOSS!");
prs.save("hello.pptx", SaveFormat::PPTX);
return 0;
}
El Presentation El destructor alliberarà tots els recursos interns automàticament quan surti de la seva portada.
Exemple de formatatge del text
#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 prs;
auto& shape = prs.slides()[0].shapes().add_auto_shape(
ShapeType::RECTANGLE, 50, 50, 500, 150
);
shape.text_frame()->set_text("Bold heading in corporate blue");
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));
prs.save("formatted.pptx", SaveFormat::PPTX);
return 0;
}
Limitacions actuals
Les següents àrees no estan disponibles en aquesta edició:
- Gràfics, SmartArt i objectes OLE
- Animacions i transicions de diapositives
- Exportació a formats PDF, HTML, SVG o d’imatge
- Hipervincles, configuracions d’acció, màcrores VBA i signatures digitals
Les parts XML desconegudes que es troben durant la càrrega s’preserven literalment en l’enregistrament, de manera que els arxius PPTX produïts per altres eines poden anar i venir amb seguretat.