Ofta ställda frågor
Ofta ställda frågor
Hur bygger jag och länkar 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)Microsoft Office eller annan systemtid krävs inte.
Varför ska jag använda RAII med Presentation?
Den Presentation klass hanterar interna XML-resurser. När objektet går ut ur räckvidden släpper dess destruktiv dessa resurser Presentation med new utan en smart pekare; använd stack allokering eller std::unique_ptr för att säkerställa rening.
Följ alltid denna 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 på?
Den SaveFormat enum definierar konstant för många format - PPTX, PDF, HTML, SVG, JPEG, PNG, och andra — för API-kompatibilitet med den kommersiella utgåvan. i löptid i denna FOSS-utgåva, alla save() samtal ignorera format argumentet och alltid skriva PPTX utgång. SaveFormat::PDF Komprimera korrekt men producerar en .pptx Filen, inte en .pdf.
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);Export till icke-PPTX-format är inte funktionellt tillgängligt i denna version. SaveFormat::PPTX För alla spar operationer.
Kan jag öppna .ppt (tidigare PowerPoint 97-2003) filer?
Nej. bara .pptx (Office Open XML) filer stöds. .ppt Binär format hanteras inte av denna bibliotek.
Hur får jag tillgång till slides?
Slides är en nollbaserad samling som kan nås via prs.slides():
auto& slides = prs.slides();
auto& first_slide = slides[0];
auto count = slides.size();Hur lägger jag till en andra slide?
Användning 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 ställer jag in slide bakgrundsfärgen?
Slide bakgrundsfärg är inte exponerad i den aktuella API. BaseSlide och Slide Har inte en background() Denna funktion är inte tillgänglig i denna version av biblioteket.
Hur använder jag NullableBool?
NullableBool är en tre-stat enum som används för att formatera egenskaper. NullableBool::TRUE (och inte C++) trueför modiga, italienska 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 textfärginställning ingen effekt?
Du måste också ställa in fill_type till SOLID Innan du tilldelar färg:
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?
Charts, SmartArt, OLE-objekt, animationer, övergångar, hyperlänkar, VBA-makrar och digitala signaturer implementeras inte i denna utgåva.
Är biblioteket trådlöst säkert?
Varje Presentation Objektet är oberoende. skapar och använder separat Presentation instanser från separata trådar är säkra så länge du inte delar en enda Presentation objekt över strängar utan extern lås.
Hur ska jag sätta in en bild?
Läs bildbytter och lägg till dem i prs.images(),och sedan skapa 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);