Često postavljana pitanja

Često postavljana pitanja

Često postavljana pitanja

Kako izgraditi i povezati Aspose.Slides FOSS za C++?

Koristite CMake FetchContent da biste dodali biblioteku u svoj projekt. Potreban je C++20 ili noviji.

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)

Nije potreban Microsoft Office niti drugi sustavski runtime.


Zašto moram koristiti RAII s Presentation?

Klasa Presentation upravlja internim XML resursima. Kada objekt izađe iz opsega, njegov destruktor oslobađa te resurse. Izbjegavajte alociranje Presentation s new bez pametnog pokazivača; koristite alokaciju na stogu ili std::unique_ptr kako biste osigurali čišćenje.

Uvijek slijedite ovaj uzorak:

#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;
}

U koje formate datoteka mogu spremiti?

Podržan je samo PPTX:

prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);

Izvoz u PDF, HTML, SVG ili formate slika (PNG, JPEG) nije dostupan u ovoj ediciji.


Mogu li otvoriti .ppt (stare PowerPoint 97-2003) datoteke?

Ne. Podržane su samo .pptx (Office Open XML) datoteke. Legacy .ppt binarni format nije podržan u ovoj biblioteci.


Kako mogu pristupiti slajdovima?

Slajdovi su kolekcija s indeksiranjem od nule dostupna putem prs.slides():

auto& slides = prs.slides();
auto& first_slide = slides[0];
auto count = slides.size();

Kako dodati drugi slajd?

Koristite prs.slides().add_empty_slide() s rasporedom:

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);

Kako postaviti boju pozadine slajda?

Boja pozadine slajda nije izložena u trenutnom API-ju. BaseSlide i Slide nemaju background() metodu. Ova značajka nije dostupna u ovoj verziji biblioteke.


Kako koristim NullableBool?

NullableBool je trostani enum koji se koristi za svojstva formatiranja. Koristite NullableBool::TRUE (ne C++ true) za podebljano, kurziv i slična svojstva:

#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);

Zašto postavljanje boje teksta nema učinka?

Također morate postaviti fill_type na SOLID prije dodjele boje:

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));

Mogu li koristiti grafikone ili SmartArt?

Ne. Grafikoni, SmartArt, OLE objekti, animacije, prijelazi, hiperveze, VBA makroi i digitalni potpisi nisu implementirani u ovoj ediciji.


Je li ova biblioteka sigurna za višedretveno korištenje?

Svaki Presentation objekt je neovisan. Stvaranje i korištenje zasebnih Presentation instanci iz odvojenih niti je sigurno sve dok ne dijelite jedan Presentation objekt među nitima bez vanjskog zaključavanja.


Kako umetnuti sliku?

Pročitajte bajtove slike i dodajte ih u prs.images(), zatim stvorite 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);

Vidi također

 Hrvatski