الوصول إلى الشريحة في العرض التقديمي
تتيح لك Aspose.Slides الوصول إلى الشرائح بطريقتين: من خلال الفهرس ومن خلال المعرف.
الوصول إلى الشريحة بواسطة الفهرس
جميع الشرائح في العرض التقديمي مرتبة رقميًا بناءً على موضع الشريحة بدءًا من 0. يمكن الوصول إلى الشريحة الأولى من خلال الفهرس 0؛ يتم الوصول إلى الشريحة الثانية من خلال الفهرس 1؛ وهكذا.
تُعرِّض فئة Presentation، التي تمثل ملف العرض التقديمي، جميع الشرائح كمجموعة ISlideCollection (مجموعة من كائنات ISlide). يوضح هذا الكود بلغة C++ كيفية الوصول إلى شريحة من خلال فهرسها:
// المسار إلى مجلد المستندات.
const String templatePath = u"../templates/AddSlides.pptx";
// إنشاء مثيل من فئة Presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// الحصول على مرجع الشريحة من خلال فهرسها
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
الوصول إلى الشريحة بواسطة المعرف
لكل شريحة في العرض التقديمي معرف فريد مرتبط بها. يمكنك استخدام طريقة GetSlideById() (التي تكشفها فئة Presentation) لاستهداف ذلك المعرف. يوضح هذا الكود بلغة C++ كيفية تقديم معرف شريحة صحيح والوصول إلى تلك الشريحة من خلال طريقة GetSlideById():
// المسار إلى مجلد المستندات.
const String templatePath = u"../templates/AddSlides.pptx";
// إنشاء مثيل من فئة Presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// الحصول على معرف الشريحة
int id = pres->get_Slides()->idx_get(0)->get_SlideId();
// الوصول إلى الشريحة من خلال معرفها
SharedPtr<IBaseSlide> slide = pres->GetSlideById(id);
تغيير موضع الشريحة
تتيح لك Aspose.Slides تغيير موضع الشريحة. على سبيل المثال، يمكنك تحديد أن الشريحة الأولى يجب أن تصبح الشريحة الثانية.
- أنشئ مثيل من فئة Presentation.
- الحصول على مرجع الشريحة (التي تريد تغيير موضعها) من خلال فهرسها.
- تعيين موضع جديد للشريحة من خلال خاصية set_SlideNumber().
- حفظ العرض التقديمي المعدل.
يظهر هذا الكود بلغة C++ عملية يتم فيها نقل الشريحة في الموضع 1 إلى الموضع 2:
// المسار إلى مجلد المستندات.
const String templatePath = u"../templates/AddSlides.pptx";
const String outPath = u"../out/ChangeSlidePosition.pptx";
// إنشاء مثيل من فئة Presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// الحصول على الشريحة التي سيتم تغيير موضعها
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// تعيين الموضع الجديد للشريحة
slide->set_SlideNumber(2);
// حفظ العرض التقديمي المعدل
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
أصبحت الشريحة الأولى هي الثانية؛ وأصبحت الشريحة الثانية هي الأولى. عند تغيير موضع الشريحة، يتم ضبط الشرائح الأخرى تلقائيًا.
تعيين رقم الشريحة
باستخدام خاصية set_FirstSlideNumber() (التي تكشفها فئة Presentation)، يمكنك تحديد رقم جديد لأولى الشريحة في العرض التقديمي. تؤدي هذه العملية إلى حساب أرقام الشرائح الأخرى من جديد.
- أنشئ مثيل من فئة Presentation.
- الحصول على رقم الشريحة.
- تعيين رقم الشريحة.
- حفظ العرض التقديمي المعدل.
يوضح هذا الكود بلغة C++ عملية يتم فيها تعيين رقم الشريحة الأولى إلى 10:
// المسار إلى مجلد المستندات.
const String outPath = u"../out/SetSlideNumber_out.pptx";
const String templatePath = u"../templates/AccessSlides.pptx";
// إنشاء مثيل من فئة Presentation
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// الحصول على رقم الشريحة
int firstSlideNumber = pres->get_FirstSlideNumber();
// تعيين رقم الشريحة
pres->set_FirstSlideNumber(2);
// حفظ العرض التقديمي المعدل
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
إذا كنت تفضل تخطي الشريحة الأولى، يمكنك بدء ترقيم الشرائح من الشريحة الثانية (وإخفاء الترقيم للشريحة الأولى) بهذه الطريقة:
auto presentation = System::MakeObject<Presentation>();
auto layoutSlide = presentation->get_LayoutSlides()->GetByType(SlideLayoutType::Blank);
auto slides = presentation->get_Slides();
slides->AddEmptySlide(layoutSlide);
slides->AddEmptySlide(layoutSlide);
slides->AddEmptySlide(layoutSlide);
// تعيين الرقم لأول شريحة في العرض التقديمي
presentation->set_FirstSlideNumber(0);
// إظهار أرقام الشرائح لجميع الشرائح
presentation->get_HeaderFooterManager()->SetAllSlideNumbersVisibility(true);
// إخفاء رقم الشريحة للشريحة الأولى
slides->idx_get(0)->get_HeaderFooterManager()->SetSlideNumberVisibility(false);
// حفظ العرض التقديمي المعدل
presentation->Save(u"output.pptx", SaveFormat::Pptx);