Často kladené otázky
Často kladené otázky
Jak sestavit a propojit Aspose.Slides FOSS pro C++?
Použijte CMake FetchContent k přidání knihovny do vašeho projektu. Je vyžadováno C++20 nebo novější.
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)Není vyžadován Microsoft Office ani jiný systémový runtime.
Proč musím používat RAII s Presentation?
Třída Presentation spravuje interní XML zdroje. Když objekt opustí rozsah, jeho destruktor uvolní tyto zdroje. Vyhněte se alokaci Presentation s new bez chytrého ukazatele; použijte alokaci na zásobníku nebo std::unique_ptr k zajištění úklidu.
Vždy dodržujte 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 jakých formátů souborů mohu ukládat?
Pouze PPTX je podporován:
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);Export do PDF, HTML, SVG nebo formátů obrázků (PNG, JPEG) není v této edici k dispozici.
Mohu otevřít .ppt (staré soubory PowerPoint 97-2003)?
Ne. Podporovány jsou pouze soubory .pptx (Office Open XML). Legacy .ppt binární formát není touto knihovnou zpracováván.
Jak mohu získat přístup ke snímkům?
Snímky jsou kolekce indexovaná od nuly, přístupná přes prs.slides():
auto& slides = prs.slides();
auto& first_slide = slides[0];
auto count = slides.size();Jak přidám druhý snímek?
Použijte prs.slides().add_empty_slide() s rozvrž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);Jak nastavit barvu pozadí snímku?
Barva pozadí snímku není v aktuálním API zpřístupněna. BaseSlide a Slide nemají metodu background(). Tato funkce není v této edici knihovny k dispozici.
Jak použít NullableBool?
NullableBool je trojstavový výčet používaný pro formátovací vlastnosti. Použijte NullableBool::TRUE (ne C++ true) pro 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);
Proč nastavení barvy textu nemá žádný efekt?
Musíte také nastavit fill_type na SOLID před přiřazením barvy:
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));Mohu používat grafy nebo SmartArt?
Ne. Grafy, SmartArt, OLE objekty, animace, přechody, hypertextové odkazy, VBA makra a digitální podpisy nejsou v této edici implementovány.
Je tato knihovna vláknově bezpečná?
Každý objekt Presentation je nezávislý. Vytváření a používání samostatných instancí Presentation z různých vláken je bezpečné, pokud nesdílíte jediný objekt Presentation napříč vlákny bez externího zamykání.
Jak vložím obrázek?
Přečtěte bajty obrázku a přidejte je do prs.images(), poté vytvořte 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);