سوالات متداول

سوالات متداول

سوالات متداول

چگونه 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 یا سایر زمان‌های اجرای سیستم نیست.


چرا باید از 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، انیمیشن‌ها، انتقال‌ها، پیوندهای فراگیر، ماکروهای VBA و امضاهای دیجیتال در این نسخه پیاده‌سازی نشده‌اند.


آیا این کتابخانه thread-safe است؟

هر شیء Presentation مستقل است. ایجاد و استفاده از نمونه‌های جداگانه Presentation از رشته‌های جداگانه ایمن است به شرطی که یک شیء Presentation را بدون قفل‌گذاری خارجی بین رشته‌ها به اشتراک نگذارید.


چگونه یک تصویر را جاسازی کنم؟

بایت‌های تصویر را بخوانید و به 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);

همچنین ببینید

 فارسی