Preguntes freqüents
Preguntes freqüents
Com puc compilar i enllaçar Aspose.Slides FOSS per a C++?
Utilitzeu CMake FetchContent per afegir la biblioteca al vostre projecte. Es requereix C++20 o posterior.
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)No es requereix Microsoft Office ni cap altre entorn d’execució del sistema.
Per què he d’utilitzar RAII amb Presentation?
La classe Presentation gestiona recursos XML interns. Quan l’objecte surt del seu àmbit, el seu destructor allibera aquests recursos. Eviteu allotjar un Presentation amb new sense un punter intel·ligent; utilitzeu allotjament a la pila o std::unique_ptr per garantir la neteja.
Segueix sempre aquest patró:
#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;
}Quins formats de fitxer puc desar?
Només es suporta PPTX:
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);L’exportació a PDF, HTML, SVG o formats d’imatge (PNG, JPEG) no està disponible en aquesta edició.
Puc obrir .ppt (PowerPoint antic 97-2003) fitxers?
No. Només es suporten fitxers .pptx (Office Open XML). El format binari antic .ppt no és gestionat per aquesta biblioteca.
Com accedeixo a les diapositives?
Les diapositives són una col·lecció indexada des de zero accessible mitjançant prs.slides():
auto& slides = prs.slides();
auto& first_slide = slides[0];
auto count = slides.size();Com afegeixo una segona diapositiva?
Utilitza prs.slides().add_empty_slide() amb un disseny:
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);Com puc establir el color de fons de la diapositiva?
El color de fons de la diapositiva no està exposat a l’API actual. BaseSlide i Slide no tenen un mètode background(). Aquesta característica no està disponible en aquesta edició de la biblioteca.
Com faig servir NullableBool?
NullableBool és un enum de tres estats utilitzat per a propietats de format. Utilitzeu NullableBool::TRUE (no el C++ true) per a negreta, cursiva i propietats similars:
#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);
Per què establir el color del text no té cap efecte?
També heu de definir fill_type a SOLID abans d’assignar el color:
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));Puc utilitzar gràfics o SmartArt?
No. Els gràfics, SmartArt, objectes OLE, animacions, transicions, enllaços, macros VBA i signatures digitals no s’implementen en aquesta edició.
És aquesta biblioteca segura per a fils?
Cada objecte Presentation és independent. Crear i utilitzar instàncies separades de Presentation des de fils separats és segur sempre que no comparteixis un únic objecte Presentation entre fils sense bloqueig extern.
Com puc incrustar una imatge?
Llegeix els bytes de la imatge i afegeix‑los a prs.images(), després crea 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);