Často kladené otázky
Často kladené otázky
Ako zostaviť a prepojiť Aspose.Slides FOSS pre C++?
Použite CMake FetchContent na pridanie knižnice do vášho projektu. C++20 alebo novší je vyžadovaný.
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)Nie je potrebný Microsoft Office ani iný systémový runtime.
Prečo musím použiť RAII s Presentation?
Trieda Presentation spravuje interné XML zdroje. Keď objekt opustí rozsah, jeho deštruktor uvoľní tieto zdroje. Vyhnite sa alokácii Presentation s new bez inteligentného ukazovateľa; použite alokáciu na zásobníku alebo std::unique_ptr na zabezpečenie čistenia.
Vždy dodržiavajte tento vzor:
#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;
}Do akých formátov súborov môžem uložiť?
Podporovaný je iba PPTX:
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);Export do PDF, HTML, SVG alebo formátov obrázkov (PNG, JPEG) nie je v tejto edícii k dispozícii.
Môžem otvoriť .ppt (staré PowerPoint 97‑2003) súbory?
Nie. Podporované sú iba súbory .pptx (Office Open XML). Starý binárny formát .ppt nie je touto knižnicou spracovávaný.
Ako môžem získať prístup k snímkam?
Snímky sú kolekcia indexovaná od nuly, prístupná cez prs.slides():
auto& slides = prs.slides();
auto& first_slide = slides[0];
auto count = slides.size();Ako pridám druhý snímok?
Použite prs.slides().add_empty_slide() s rozložením:
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);Ako nastaviť farbu pozadia snímky?
Farba pozadia snímky nie je v aktuálnom API vystavená. BaseSlide a Slide nemajú metódu background(). Táto funkcia nie je v tejto edícii knižnice k dispozícii.
Ako používam NullableBool?
NullableBool je trojstavový enum používaný pre formátovacie vlastnosti. Použite NullableBool::TRUE (nie C++ true) pre tučné, kurzívu a podobné vlastnosti:
#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);
Prečo nastavenie farby textu nemá žiadny efekt?
Musíte tiež nastaviť fill_type na SOLID pred priradením farby:
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));Môžem použiť grafy alebo SmartArt?
Nie. Grafy, SmartArt, OLE objekty, animácie, prechody, hypertextové odkazy, VBA makrá a digitálne podpisy nie sú v tejto edícii implementované.
Je táto knižnica vlákno-bezpečná?
Každý objekt Presentation je nezávislý. Vytváranie a používanie samostatných inštancií Presentation z rôznych vlákien je bezpečné, pokiaľ nesdielate jediný objekt Presentation medzi vláknami bez externého zamykania.
Ako vložím obrázok?
Prečítajte bajty obrázka a pridajte ich do prs.images(), potom vytvorte 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);