Häufig gestellte Fragen

Häufig gestellte Fragen

Häufig gestellte Fragen

Wie erstelle ich und verknüpfe 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)

Keine Microsoft Office- oder sonstige Systemlaufzeit erforderlich.


Warum muss ich RAII mit Presentation?

Die Presentation Wenn das Objekt aus dem Umfang geht, freisetzt sein Destruktor diese Ressourcen. Vermeiden Sie die Zuweisung eines XML-Objekts. Presentation mit: new ohne intelligenten Zeiger; verwenden Sie Stack-Zuteilung oder std::unique_ptr die Reinigung sicherzustellen.

Folgen Sie immer diesem 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?

Die SaveFormat enum definiert Konstanten für viele Formate PPTX, PDF, HTML, SVG, JPEG, PNG, und andere für die API-Kompatibilität mit der kommerziellen Ausgabe. save() Anrufe ignorieren das Format-Argument und schreiben immer PPTX-Ausgabe. SaveFormat::PDF Kompiliert korrekt, erzeugt aber eine .pptx Akten, nicht eine .pdf.

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

Export in andere Formate als PPTX ist nicht funktional verfügbar. Verwenden Sie die Funktion “Export” für den Text: SaveFormat::PPTX für alle Rettungsoperationen.


Kann ich die Tür öffnen? .ppt (alte PowerPoint 97-2003) Dateien?

Nein, nur… .pptx (Office Open XML) Dateien unterstützt werden. Legacy .ppt Binärformat wird nicht von dieser Bibliothek behandelt.


Wie komme ich auf die Folien?

Die Folien sind eine Null-basierte Sammlung, die über prs.slides():

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

Wie füge ich eine zweite Folie hinzu?

Verwendung prs.slides().add_empty_slide() mit einer Anordnung:

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 kann ich die Hintergrundfarbe der Folie einstellen?

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


Wie benutze ich die NullableBool?

NullableBool ist ein Tri-State-Enum, das für die Formatierung von Eigenschaften verwendet wird. Use 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 Einstellen von Textfarben keine Wirkung?

Sie müssen auch festlegen, fill_type zu . SOLID vor der Zuordnung der Farbe:

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 benutzen?

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


Ist die Bibliothek schnurrsicher?

Jeder von ihnen Presentation Objekt ist unabhängig. Erstellen und verwenden separaten Presentation Instanzen von separaten Threads ist sicher, solange Sie nicht teilen eine einzelne Presentation Objekt über Fäden ohne äußere Verriegelung.


Wie kann ich ein Bild eingebettet?

Lesen Sie die Bild-Bytes und fügen sie zu prs.images(), dann eine 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