Συχνές Ερωτήσεις

Συχνές Ερωτήσεις

Συχνές Ερωτήσεις

Πώς μπορώ να δημιουργήσω και να συνδέσω το Aspose.Slides FOSS για C++;

Χρησιμοποιήστε το CMake FetchContent για να προσθέσετε τη βιβλιοθήκη στο έργο σας. Απαιτείται C++20 ή νεότερη έκδοση.

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 ή κάποιο άλλο runtime του συστήματος.


Γιατί πρέπει να χρησιμοποιώ RAII με Presentation;

Η κλάση Presentation διαχειρίζεται εσωτερικούς πόρους XML. Όταν το αντικείμενο βγει εκτός εμβέλειας, ο καταστροφέας του απελευθερώνει αυτούς τους πόρους. Αποφύγετε την εκχώρηση ενός Presentation με new χωρίς έξυπνο δείκτη· χρησιμοποιήστε εκχώρηση στο στοίβα ή std::unique_ptr για να εξασφαλίσετε τον καθαρισμό.

Πάντα ακολουθήστε αυτό το μοτίβο:

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

Σε ποιες μορφές αρχείων μπορώ να αποθηκεύσω;

Μόνο το PPTX υποστηρίζεται:

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

Η εξαγωγή σε PDF, HTML, SVG ή μορφές εικόνας (PNG, JPEG) δεν είναι διαθέσιμη σε αυτήν την έκδοση.


Μπορώ να ανοίξω .ppt (παλαιά PowerPoint 97-2003) αρχεία;

Όχι. Μόνο τα αρχεία .pptx (Office Open XML) υποστηρίζονται. Η παλαιά δυαδική μορφή .ppt δεν υποστηρίζεται από αυτή τη βιβλιοθήκη.


Πώς μπορώ να αποκτήσω πρόσβαση στις διαφάνειες;

Οι διαφάνειες είναι μια συλλογή με μηδενική αρίθμηση προσβάσιμη μέσω prs.slides():

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

Πώς προσθέτω μια δεύτερη διαφάνεια;

Χρησιμοποιήστε prs.slides().add_empty_slide() με διάταξη:

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

Πώς μπορώ να ορίσω το χρώμα φόντου της διαφάνειας;

Το χρώμα φόντου της διαφάνειας δεν εκτίθεται στο τρέχον API. BaseSlide και Slide δεν διαθέτουν μέθοδο background(). Αυτή η δυνατότητα δεν είναι διαθέσιμη σε αυτήν την έκδοση της βιβλιοθήκης.


Πώς χρησιμοποιώ NullableBool?

NullableBool είναι ένας τρι‑κατάστασης enum που χρησιμοποιείται για ιδιότητες μορφοποίησης. Χρησιμοποιήστε NullableBool::TRUE (όχι C++ true) για έντονη, πλάγια και παρόμοιες ιδιότητες:

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

Γιατί η ρύθμιση του χρώματος κειμένου δεν έχει καμία επίδραση;

Πρέπει επίσης να ορίσετε το fill_type σε SOLID πριν από την ανάθεση του χρώματος:

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

Μπορώ να χρησιμοποιήσω διαγράμματα ή SmartArt;

Όχι. Διαγράμματα, SmartArt, αντικείμενα OLE, animation, μεταβάσεις, υπερσυνδέσεις, μακροεντολές VBA και ψηφιακές υπογραφές δεν έχουν υλοποιηθεί σε αυτήν την έκδοση.


Είναι αυτή η βιβλιοθήκη ασφαλής ως προς τα νήματα;

Κάθε αντικείμενο Presentation είναι ανεξάρτητο. Η δημιουργία και χρήση ξεχωριστών στιγμιοτύπων Presentation από ξεχωριστά νήματα είναι ασφαλής, εφόσον δεν μοιράζεστε ένα μόνο αντικείμενο Presentation μεταξύ νημάτων χωρίς εξωτερικό κλείδωμα.


Πώς ενσωματώνω μια εικόνα;

Διαβάστε τα byte της εικόνας και προσθέστε τα στο prs.images(), στη συνέχεια δημιουργήστε ένα 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);

Δείτε επίσης

 Ελληνικά