Întrebări frecvente

Întrebări frecvente

Întrebări frecvente

Cum să construiesc și să fac legătura cu Aspose.Slides FOSS pentru C++?

Utilizați CMake FetchContent pentru a adăuga biblioteca în proiectul dumneavoastră. C++20 sau o versiune ulterioară este necesară.

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)

Nu este necesar Microsoft Office sau alt runtime de sistem.


De ce trebuie să folosesc RAII cu Presentation?

Clasa Presentation gestionează resursele XML interne. Când obiectul iese din domeniu, destructorul său eliberează acele resurse. Evitați alocarea unui Presentation cu new fără un pointer inteligent; folosiți alocarea pe stivă sau std::unique_ptr pentru a asigura curățarea.

Urmărește întotdeauna acest model:

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

În ce formate de fișier pot salva?

Doar PPTX este acceptat:

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

Exportul în PDF, HTML, SVG sau formatele de imagine (PNG, JPEG) nu este disponibil în această ediție.


Pot să deschid fișiere .ppt (old PowerPoint 97-2003)?

Nu. Doar fișierele .pptx (Office Open XML) sunt acceptate. Formatul binar legacy .ppt nu este gestionat de această bibliotecă.


Cum pot accesa diapozitivele?

Diapozitivele sunt o colecție indexată de la zero accesibilă prin prs.slides():

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

Cum adaug un al doilea diapozitiv?

Utilizați prs.slides().add_empty_slide() cu un aspect:

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

Cum pot seta culoarea de fundal a diapozitivului?

Culoarea de fundal a diapozitivului nu este expusă în API-ul curent. BaseSlide și Slide nu au o metodă background(). Această funcționalitate nu este disponibilă în această ediție a bibliotecii.


Cum pot folosi NullableBool?

NullableBool este un enum cu trei stări utilizat pentru proprietăți de formatare. Folosiți NullableBool::TRUE (nu C++ true) pentru îngroșare, cursiv și proprietăți similare:

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

De ce setarea culorii textului nu are niciun efect?

Trebuie, de asemenea, să setați fill_type la SOLID înainte de a atribui culoarea:

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

Pot să folosesc diagrame sau SmartArt?

Nu. Graficele, SmartArt, obiectele OLE, animațiile, tranzițiile, hyperlink-urile, macro-urile VBA și semnăturile digitale nu sunt implementate în această ediție.


Este această bibliotecă sigură pentru fire de execuție?

Fiecare obiect Presentation este independent. Crearea și utilizarea de instanțe separate Presentation din fire de execuție separate este sigură, atâta timp cât nu partajaţi un singur obiect Presentation între fire fără blocare externă.


Cum să încorporez o imagine?

Citește octeții imaginii și adaugă-i la prs.images(), apoi creează 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);

Vezi și

 Română