الأسئلة المتكررة
الأسئلة المتكررة
كيف أقوم ببناء وربط 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);كيف يمكنني تعيين لون خلفية الشريحة؟
لون خلفية الشريحة غير متاح في واجهة برمجة التطبيقات الحالية. BaseSlide و Slide لا يحتويان على طريقة background(). هذه الميزة غير متوفرة في هذه النسخة من المكتبة.
كيف أستخدم NullableBool؟
NullableBool هو تعداد ثلاثي الحالة يُستخدم لخصائص التنسيق. استخدم 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، والتوقيعات الرقمية غير مُنفذة في هذا الإصدار.
هل هذه المكتبة آمنة للخيوط؟
كل كائن 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);