Häufig gestellte Fragen

Häufig gestellte Fragen

Häufig gestellte Fragen

Wie baue und verlinke ich Aspose.Slides FOSS für C++?

Verwenden Sie CMake FetchContent, um die Bibliothek zu Ihrem Projekt hinzuzufügen. C++20 oder höher ist erforderlich.

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)

Kein Microsoft Office oder andere Systemlaufzeit ist erforderlich.


Warum muss ich RAII mit Presentation verwenden?

Die Presentation‑Klasse verwaltet interne XML‑Ressourcen. Wenn das Objekt den Gültigkeitsbereich verlässt, gibt sein Destruktor diese Ressourcen frei. Vermeiden Sie die Zuweisung eines Presentation mit new ohne einen Smart Pointer; verwenden Sie die Stack‑Allocation oder std::unique_ptr, um die Bereinigung sicherzustellen.

Befolgen Sie immer dieses Muster:

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

In welche Dateiformate kann ich speichern?

Nur PPTX wird unterstützt:

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

Export nach PDF, HTML, SVG oder Bildformaten (PNG, JPEG) ist in dieser Edition nicht verfügbar.


Kann ich .ppt (alte PowerPoint 97-2003) Dateien öffnen?

Nein. Nur .pptx (Office Open XML)-Dateien werden unterstützt. Das veraltete .ppt-Binärformat wird von dieser Bibliothek nicht verarbeitet.


Wie greife ich auf Folien zu?

Folien sind eine nullbasierte Sammlung, die über prs.slides() zugänglich ist:

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

Wie füge ich eine zweite Folie hinzu?

Verwenden Sie prs.slides().add_empty_slide() mit einem Layout:

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

Wie stelle ich die Folienhintergrundfarbe ein?

Die Hintergrundfarbe der Folie ist in der aktuellen API nicht verfügbar. BaseSlide und Slide haben keine background()‑Methode. Diese Funktion ist in dieser Ausgabe der Bibliothek nicht verfügbar.


Wie benutze ich NullableBool?

NullableBool ist ein Drei‑Zustands‑Enum, das für Formatierungseigenschaften verwendet wird. Verwenden Sie NullableBool::TRUE (nicht C++ true) für fett, kursiv und ähnliche Eigenschaften:

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

Warum hat das Festlegen der Textfarbe keine Wirkung?

Sie müssen außerdem fill_type auf SOLID setzen, bevor Sie die Farbe zuweisen:

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

Kann ich Diagramme oder SmartArt verwenden?

Nein. Diagramme, SmartArt, OLE‑Objekte, Animationen, Übergänge, Hyperlinks, VBA‑Makros und digitale Signaturen sind in dieser Ausgabe nicht implementiert.


Ist diese Bibliothek thread‑sicher?

Jedes Presentation‑Objekt ist unabhängig. Das Erstellen und Verwenden separater Presentation‑Instanzen aus separaten Threads ist sicher, solange Sie kein einzelnes Presentation‑Objekt über Threads hinweg ohne externe Sperrung teilen.


Wie bette ich ein Bild ein?

Lese die Bildbytes und füge sie zu prs.images() hinzu, dann erstelle ein 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);

Siehe auch

 Deutsch