Ofte stillede spørgsmål

Ofte stillede spørgsmål

Ofte stillede spørgsmål

Hvordan bygger og linker jeg Aspose.Slides FOSS til C++?

Brug CMake FetchContent til at tilføje biblioteket til dit projekt. C++20 eller nyere er påkrævet.

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)

Ingen Microsoft Office eller anden systemruntime er påkrævet.


Hvorfor skal jeg bruge RAII med Presentation?

Klassen Presentation håndterer interne XML‑ressourcer. Når objektet går ud af scope, frigiver dens destruktor de ressourcer. Undgå at allokere en Presentation med new uden en smart pointer; brug stakallokering eller std::unique_ptr for at sikre oprydning.

Følg altid dette mønster:

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

Hvilke filformater kan jeg gemme til?

Kun PPTX understøttes:

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

Eksport til PDF, HTML, SVG eller billedformater (PNG, JPEG) er ikke tilgængelig i denne udgave.


Kan jeg åbne .ppt (gamle PowerPoint 97-2003) filer?

Nej. Kun .pptx (Office Open XML) filer understøttes. Det ældre .ppt binære format håndteres ikke af dette bibliotek.


Hvordan får jeg adgang til slides?

Slides er en nulbaseret samling, der er tilgængelig via prs.slides():

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

Hvordan tilføjer jeg et andet slide?

Brug prs.slides().add_empty_slide() med et 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);

Hvordan indstiller jeg slide‑baggrundsfarven?

Slide‑baggrundsfarve er ikke eksponeret i den aktuelle API. BaseSlide og Slide har ikke en background()‑metode. Denne funktion er ikke tilgængelig i denne udgave af biblioteket.


Hvordan bruger jeg NullableBool?

NullableBool er en tre‑tilstand enum, der bruges til formaterings‑egenskaber. Brug NullableBool::TRUE (ikke C++ true) til fed, kursiv og lignende egenskaber:

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

Hvorfor har indstilling af tekstfarve ingen effekt?

Du skal også indstille fill_type til SOLID, før du tildeler farven:

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

Kan jeg bruge diagrammer eller SmartArt?

Nej. Diagrammer, SmartArt, OLE‑objekter, animationer, overgange, hyperlinks, VBA‑makroer og digitale signaturer er ikke implementeret i denne udgave.


Er dette bibliotek trådsikkert?

Hvert Presentation-objekt er uafhængigt. Det er sikkert at oprette og bruge separate Presentation-instanser fra separate tråde, så længe du ikke deler et enkelt Presentation-objekt på tværs af tråde uden ekstern låsning.


Hvordan indlejrer jeg et billede?

Læs billedbytes og tilføj dem til prs.images(), og opret derefter en 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);

Se også

 Dansk