1. المنتجات
  2.   Aspose.Slides
  3.   Aspose.Slides FOSS for C++

Aspose.Slides FOSS لـ C++

إنشاء وقراءة وتحرير عروض PowerPoint من C++ — مجانية ومفتوحة المصدر، ولا تحتاج إلى اعتماد على Office.

مكتبة C++ مفتوحة المصدر لعروض PowerPoint

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.

واجهة برمجة تطبيقات العروض والشرائح

  • Create and open PPTX: أنشئ عروضًا تقديمية جديدة أو افتح ملفات .pptx الموجودة عبر Presentation() أو Presentation(path).
  • Add and remove slides: إدارة مجموعة الشرائح SlideCollection برمجيًا باستخدام add_clone()، remove()، وremove_at().
  • AutoShapes: أدخل مستطيلات، إهليلات، خطوط، وغيرها من أشكال ShapeType عبر add_auto_shape().
  • Tables and Connectors: أضف أشكال جداول منظمة وخطوط موصل بين الأشكال عبر add_connector().
  • Speaker notes: اقرأ واكتب ملاحظات المتحدث لكل شريحة عبر NotesSlideManager.
  • Threaded comments: الوصول إلى سلاسل التعليقات على مستوى الشريحة باستخدام get_slide_comments().

أين يمكن استخدام Aspose.Slides FOSS

  • Report generation: أنشئ مجموعات شرائح ذات علامة تجارية من مصادر البيانات دون الحاجة إلى Office.
  • Template automation: املأ قوالب PPTX بمحتوى ديناميكي في خطوط أنابيب CI/CD.
  • Content migration: قراءة العروض التقديمية الحالية وإعادة هيكلة الشرائح أو تعديل نمطها.
  • Embedded systems: معالجة ملفات PPTX في بيئات ذات أداء حرج أو موارد محدودة.
  • Batch processing: تطبيق تغييرات تنسيق موحدة عبر مكتبات كبيرة من مجموعات الشرائح.

تنسيق النص والتأثيرات البصرية

  • Character-level formatting: طبّق الغامق، المائل، حجم الخط، واللون على كائنات Portion الفردية عبر PortionFormat.
  • Solid and gradient fills: اضبط تعبئة الشكل إلى لون صلب أو تدرج خطي متعدد الوقفات باستخدام FillFormat وFillType.
  • Shadow and glow effects: طبّق ظلًا خارجيًا، توهج، تمويه، وانعكاس على أي شكل عبر EffectFormat.
  • Paragraph alignment: اضبط محاذاة اليسار، الوسط، اليمين، أو التبرير لكل فقرة باستخدام ParagraphFormat وset_alignment().
  • Round-trip safe: الأجزاء غير المعروفة من XML تُحفظ حرفيًا عند إعادة الحفظ.

تجربة المطور

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

الأسئلة الشائعة

ما هو Aspose.Slides FOSS لـ C++؟

إنّها مكتبة C++ مجانية مرخصة بموجب رخصة MIT لإنشاء وقراءة وتحرير عروض PowerPoint بصيغة .pptx دون الحاجة إلى Microsoft Office.

ما هي صيغ الملفات المدعومة؟

PPTX هو الصيغة المدعومة للقراءة والكتابة. التصدير إلى PDF أو HTML أو SVG أو الصور غير متوفر في هذا الإصدار.

هل يتطلب Microsoft Office أو PowerPoint؟

لا. Aspose.Slides FOSS هي مكتبة C++ مستقلة لا تعتمد على Microsoft Office أو أتمتة COM أو أي بيئة تشغيل مملوكة.

كيف أقوم بتثبيته؟

استخدم CMake FetchContent لدمج المكتبة مباشرةً من GitHub. تتطلب المكتبة مُصرّفًا متوافقًا مع C++17.

هل يمكنني تطبيق تأثيرات بصرية مثل الظل والتوهج؟

نعم. تدعم المكتبة تأثيرات الظل الخارجي، والتوهج، والطمس، والانعكاس على أي كائن شكل عبر واجهة برمجة التطبيقات EffectFormat.

هل تستخدم المكتبة مبدأ RAII لإدارة الموارد؟

نعم. يقوم مُدمّر Presentation بتحرير جميع الحالة الداخلية تلقائيًا، لذا لا حاجة إلى تنظيف صريح.

هل سيؤدي تحويل PPTX ذهابًا وإيابًا إلى تدمير المحتوى غير المعروف؟

لا. يتم الحفاظ على أجزاء XML غير المعروفة التي تم مواجهتها أثناء التحميل كما هي عند الحفظ، لذا لا يُفقد أي محتوى لا تفهمه المكتبة بعد.

أين يمكنني العثور على الكود المصدري؟

المكتبة مرخصة بموجب رخصة MIT ومستضافة على GitHub. تقارير الأخطاء وطلبات السحب مرحب بها.

  

الدعم وموارد التعلم

 العربية