Aspose.Slides FOSS لـ C++ هي مكتبة مرخصة تحت MIT للعمل مع ملفات PowerPoint .pptx. دمجها عبر CMake FetchContent وابدأ فورًا في إنشاء، قراءة، وتحرير العروض التقديمية دون تثبيت Microsoft Office أو أي بيئة تشغيل مملوكة.
تُظهر المكتبة واجهة برمجة تطبيقات Presentation مبنية حول Presentation، Slide، ShapeCollection، TextFrame، Paragraph، وPortion، وهو النموذج المفاهيمي الذي يستخدمه PowerPoint نفسه. أضف وأزل الشرائح، أدخل AutoShapes، الجداول، والموصلات، نسّق النص على مستوى الحرف باستخدام الغامق، المائل، حجم الخط واللون، طبّق تعبئات صلبة أو متدرجة، وأضف تأثيرات بصرية (ظل، توهج، تمويه، انعكاس).
تضمن دلالات RAII تنظيف الموارد بشكل موثوق: مُدمّر Presentation يحرّر كل الحالة الداخلية تلقائيًا. الأجزاء غير المعروفة من XML التي تُواجه أثناء التحميل تُحفظ حرفيًا عند الحفظ، لذا فإن عملية الإعادة لا تدمر المحتوى الذي لا تفهمه المكتبة بعد. تتطلب المكتبة مُترجم متوافق مع C++17.
.pptx الموجودة عبر Presentation() أو Presentation(path).SlideCollection برمجيًا باستخدام add_clone()، remove()، وremove_at().ShapeType عبر add_auto_shape().add_connector().NotesSlideManager.get_slide_comments().Portion الفردية عبر PortionFormat.FillFormat وFillType.EffectFormat.ParagraphFormat وset_alignment().Aspose.Slides FOSS يندمج عبر CMake FetchContent، لذا لا حاجة لتنزيل يدوي أو تثبيت على مستوى النظام. تُبنى المكتبة من المصدر جنبًا إلى جنب مع مشروعك.
واجهة البرمجة (API) تعكس نموذج الكائنات الخاص بـ PowerPoint (Presentation، Slide، ShapeCollection، TextFrame، Paragraph، Portion)، لذا يمكن لأي شخص مألوف بنموذج كائنات PowerPoint استخدام المكتبة فورًا. المكتبة مرخصة تحت MIT، مفتوحة المصدر على GitHub، وتتطلب مترجمًا متوافقًا مع C++17.
تضمن RAII أن مُدمّر Presentation يحرّر جميع الموارد تلقائيًا عندما يخرج الكائن من نطاقه. add_auto_shape() تستقبل تعداد ShapeType، ثم إحداثيات x/y وعرض/ارتفاع بالنقاط — يوفر text_frame الخاص بالشكل إمكانية ضبط محتوى النص.
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)
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>
int main() {
Aspose::Slides::Foss::Presentation prs;
auto& slide = prs.slides()[0];
// إضافة شكل أوتوماتيكي مستطيل
auto& shape = slide.shapes().add_auto_shape(
Aspose::Slides::Foss::ShapeType::RECTANGLE,
50, 50, 400, 150
);
shape.text_frame()->set_text("مرحبًا، Aspose.Slides!");
prs.save("output.pptx", Aspose::Slides::Foss::SaveFormat::PPTX);
return 0;
}
تنسيق النص يعمل على مستوى Portion — أصغر وحدة في سلسلة الأحرف. افتح الملف المحفوظ، وانتقل إلى الجزء الأول من الفقرة الأولى، وقم بتعيين خصائص الخط مباشرة. تعبئة الشكل مستقلة: اضبط نوع التعبئة إلى صلب وعيّن لونًا.
#include <Aspose/Slides/Foss/presentation.h>
namespace asf = Aspose::Slides::Foss;
int main() {
asf::Presentation prs("output.pptx");
auto& shape = prs.slides()[0].shapes()[0];
auto& portion = shape.text_frame()
->paragraphs()[0].portions()[0];
// غامق، نص بحجم 18 نقطة
portion.portion_format().set_font_bold(asf::NullableBool::TRUE);
portion.portion_format().set_font_height(18);
// تعبئة خلفية صلبة على الشكل
shape.fill_format().set_fill_type(asf::FillType::SOLID);
prs.save("formatted.pptx", asf::SaveFormat::PPTX);
return 0;
}
إنّها مكتبة C++ مجانية مرخصة بموجب رخصة MIT لإنشاء وقراءة وتحرير عروض PowerPoint بصيغة .pptx دون الحاجة إلى Microsoft Office.
PPTX هو الصيغة المدعومة للقراءة والكتابة. التصدير إلى PDF أو HTML أو SVG أو الصور غير متوفر في هذا الإصدار.
لا. Aspose.Slides FOSS هي مكتبة C++ مستقلة لا تعتمد على Microsoft Office أو أتمتة COM أو أي بيئة تشغيل مملوكة.
استخدم CMake FetchContent لدمج المكتبة مباشرةً من GitHub. تتطلب المكتبة مُصرّفًا متوافقًا مع C++17.
نعم. تدعم المكتبة تأثيرات الظل الخارجي، والتوهج، والطمس، والانعكاس على أي كائن شكل عبر واجهة برمجة التطبيقات EffectFormat.
نعم. يقوم مُدمّر Presentation بتحرير جميع الحالة الداخلية تلقائيًا، لذا لا حاجة إلى تنظيف صريح.
لا. يتم الحفاظ على أجزاء XML غير المعروفة التي تم مواجهتها أثناء التحميل كما هي عند الحفظ، لذا لا يُفقد أي محتوى لا تفهمه المكتبة بعد.
المكتبة مرخصة بموجب رخصة MIT ومستضافة على GitHub. تقارير الأخطاء وطلبات السحب مرحب بها.