Vanliga frågor

Vanliga frågor

Vanliga frågor

Hur bygger och länkar jag Aspose.Slides FOSS för C++?

Använd CMake FetchContent för att lägga till biblioteket i ditt projekt. C++20 eller senare krävs.

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 annan systemruntime krävs.


Varför måste jag använda RAII med Presentation?

Presentation-klassen hanterar interna XML-resurser. När objektet går ur scope frigör dess destruktor dessa resurser. Undvik att allokera en Presentation med new utan en smart pekare; använd stackallokering eller std::unique_ptr för att säkerställa rensning.

Följ alltid detta 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;
}

Vilka filformat kan jag spara till?

Endast PPTX stöds:

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

Export till PDF, HTML, SVG eller bildformat (PNG, JPEG) är inte tillgängligt i den här utgåvan.


Kan jag öppna .ppt (gamla PowerPoint 97-2003) filer?

Nej. Endast .pptx (Office Open XML)-filer stöds. Äldre .ppt binära format hanteras inte av detta bibliotek.


Hur får jag åtkomst till bilder?

Slides är en nollbaserad samling som är åtkomlig via prs.slides():

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

Hur lägger jag till en andra bild?

Använd prs.slides().add_empty_slide() med en 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);

Hur sätter jag bakgrundsfärgen på bilden?

Bakgrundsfärgen för bilden är inte tillgänglig i det aktuella API:et. BaseSlide och Slide har ingen background()-metod. Denna funktion är inte tillgänglig i den här utgåvan av biblioteket.


Hur använder jag NullableBool?

NullableBool är en tre‑tillstånds‑enum som används för formateringsegenskaper. Använd NullableBool::TRUE (inte C++ true) för fetstil, kursiv och liknande egenskaper:

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

Varför har inställning av textfärg ingen effekt?

Du måste också ställa in fill_type till SOLID innan du tilldelar färgen:

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 jag använda diagram eller SmartArt?

Nej. Diagram, SmartArt, OLE‑objekt, animationer, övergångar, hyperlänkar, VBA‑makron och digitala signaturer är inte implementerade i den här utgåvan.


Är detta bibliotek trådsäkert?

Varje Presentation‑objekt är oberoende. Att skapa och använda separata Presentation‑instanser från separata trådar är säkert så länge du inte delar ett enda Presentation‑objekt över trådar utan extern låsning.


Hur bäddar jag in en bild?

Läs bildens byte och lägg till dem i prs.images(), skapa sedan 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 även

 Svenska