Foire aux questions
Questions fréquemment posées
Comment puis‑je compiler et lier Aspose.Slides FOSS pour C++?
Utilisez CMake FetchContent pour ajouter la bibliothèque à votre projet. C++20 ou une version ultérieure est requise.
cmake_minimum_required(VERSION 3.20)
project(my_app LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
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)
add_executable(my_app main.cpp)
target_link_libraries(my_app PRIVATE aspose_slides_foss)Aucun Microsoft Office ou autre environnement d’exécution système n’est requis.
Pourquoi dois‑je utiliser RAII avec Presentation ?
La classe Presentation gère les ressources XML internes. Lorsque l’objet sort de la portée, son destructeur libère ces ressources. Évitez d’allouer un Presentation avec new sans pointeur intelligent ; utilisez l’allocation sur la pile ou std::unique_ptr pour garantir le nettoyage.
Suivez toujours ce modèle :
#include <Aspose/Slides/Foss/presentation.h>
int main() {
Aspose::Slides::Foss::Presentation prs;
// work here
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
return 0;
}Dans quels formats de fichier puis-je enregistrer ?
Seul PPTX est pris en charge :
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);L’exportation vers PDF, HTML, SVG ou les formats d’image (PNG, JPEG) n’est pas disponible dans cette édition.
Puis‑je ouvrir .ppt (ancien PowerPoint 97‑2003) fichiers ?
Non. Seuls les fichiers .pptx (Office Open XML) sont pris en charge. Le format binaire hérité .ppt n’est pas géré par cette bibliothèque.
Comment accéder aux diapositives ?
Les diapositives sont une collection indexée à partir de zéro accessible via prs.slides():
auto& slides = prs.slides();
auto& first_slide = slides[0];
auto count = slides.size();Comment ajouter une deuxième diapositive ?
Utilisez prs.slides().add_empty_slide() avec une mise en page :
Aspose::Slides::Foss::Presentation prs;
auto& layout = prs.layout_slides()[0];
prs.slides().add_empty_slide(&layout);
auto& slide2 = prs.slides()[1];
prs.save("two-slides.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);Comment définir la couleur d’arrière-plan de la diapositive ?
La couleur d’arrière‑plan de la diapositive n’est pas exposée dans l’API actuelle. BaseSlide et Slide n’ont pas de méthode background(). Cette fonctionnalité n’est pas disponible dans cette édition de la bibliothèque.
Comment puis-je utiliser NullableBool ?
NullableBool est une énumération à trois états utilisée pour les propriétés de mise en forme. Utilisez NullableBool::TRUE (et non le C++ true) pour le gras, l’italique et des propriétés similaires :
#include <Aspose/Slides/Foss/presentation.h>
fmt.set_font_bold(Aspose::Slides::Foss::NullableBool::TRUE);
fmt.set_font_italic(Aspose::Slides::Foss::NullableBool::FALSE);
// Note: set_font_underline() takes TextUnderlineType, not NullableBool:
// fmt.set_font_underline(Aspose::Slides::Foss::TextUnderlineType::NONE);
Pourquoi le réglage de la couleur du texte n’a-t-il aucun effet ?
Vous devez également définir fill_type sur SOLID avant d’attribuer la couleur :
fmt.fill_format().set_fill_type(Aspose::Slides::Foss::FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(
Aspose::Slides::Foss::Color::from_argb(255, 200, 0, 0));Puis-je utiliser des graphiques ou SmartArt ?
Non. Les graphiques, SmartArt, objets OLE, animations, transitions, hyperliens, macros VBA et signatures numériques ne sont pas implémentés dans cette édition.
Cette bibliothèque est‑elle thread‑safe ?
Chaque objet Presentation est indépendant. Créer et utiliser des instances distinctes de Presentation à partir de threads séparés est sûr tant que vous ne partagez pas un même objet Presentation entre les threads sans verrouillage externe.
Comment intégrer une image ?
Lisez les octets de l’image et ajoutez‑les à prs.images(), puis créez un PictureFrame :
#include <Aspose/Slides/Foss/presentation.h>
#include <fstream>
#include <vector>
std::ifstream file("logo.png", std::ios::binary);
std::vector<uint8_t> data((std::istreambuf_iterator<char>(file)),
std::istreambuf_iterator<char>());
auto& image = prs.images().add_image(data);
slide.shapes().add_picture_frame(
Aspose::Slides::Foss::ShapeType::RECTANGLE, 50, 50, 200, 150, image);