Najczęściej zadawane pytania

Najczęściej zadawane pytania

Najczęściej zadawane pytania

Jak zbudować i połączyć Aspose.Slides FOSS dla C++?

Użyj CMake FetchContent, aby dodać bibliotekę do swojego projektu. Wymagany jest C++20 lub nowszy.

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 wymaga Microsoft Office ani innych środowisk uruchomieniowych systemu.


Dlaczego muszę używać RAII z Presentation?

Klasa Presentation zarządza wewnętrznymi zasobami XML. Gdy obiekt wychodzi poza zakres, jego destruktor zwalnia te zasoby. Unikaj alokacji Presentation przy użyciu new bez inteligentnego wskaźnika; użyj alokacji na stosie lub std::unique_ptr, aby zapewnić czyszczenie.

Zawsze stosuj ten wzór:

#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 jakich formatów plików mogę zapisywać?

Obsługiwany jest tylko PPTX:

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

Eksport do PDF, HTML, SVG lub formatów obrazu (PNG, JPEG) nie jest dostępny w tej edycji.


Czy mogę otworzyć .ppt (stare PowerPoint 97-2003) pliki?

Nie. Obsługiwane są wyłącznie pliki .pptx (Office Open XML). Starszy format binarny .ppt nie jest obsługiwany przez tę bibliotekę.


Jak mogę uzyskać dostęp do slajdów?

Slajdy są kolekcją zerowo‑indeksowaną dostępną przez prs.slides():

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

Jak dodać drugi slajd?

Użyj prs.slides().add_empty_slide() z układem:

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 ustawić kolor tła slajdu?

Kolor tła slajdu nie jest udostępniony w bieżącym API. BaseSlide i Slide nie mają metody background(). Ta funkcja nie jest dostępna w tej edycji biblioteki.


Jak używać NullableBool?

NullableBool jest wyliczeniem trójstanowym używanym do właściwości formatowania. Użyj NullableBool::TRUE (nie C++ true) do pogrubienia, kursywy i podobnych właściwości:

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

Dlaczego ustawienie koloru tekstu nie ma żadnego efektu?

Musisz także ustawić fill_type na SOLID przed przypisaniem koloru:

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

Czy mogę używać wykresów lub SmartArt?

Nie. Wykresy, SmartArt, obiekty OLE, animacje, przejścia, hiperłącza, makra VBA i podpisy cyfrowe nie są zaimplementowane w tej edycji.


Czy ta biblioteka jest bezpieczna wątkowo?

Każdy obiekt Presentation jest niezależny. Tworzenie i używanie oddzielnych instancji Presentation z różnych wątków jest bezpieczne, pod warunkiem że nie udostępniasz jednego obiektu Presentation pomiędzy wątkami bez zewnętrznego blokowania.


Jak osadzić obraz?

Odczytaj bajty obrazu i dodaj je do prs.images(), a następnie utwórz 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);

Zobacz także

 Polski