إدارة سلائد الشرائح الرئيسية في العروض التقديمية بلغة C++

ما هو Slide Master في PowerPoint

Slide Master هو قالب شريحة يحدد التنسيق، الأنماط، السمة، الخطوط، الخلفية، والخصائص الأخرى للشرائح في عرض تقديمي. إذا كنت تريد إنشاء عرض تقديمي (أو سلسلة من العروض) بنفس النمط والقالب لشركتك، يمكنك استخدام Slide Master.

يعد Slide Master مفيدًا لأنه يتيح لك تعيين وتغيير مظهر جميع شرائح العرض مرة واحدة. يدعم Aspose.Slides آلية Slide Master من PowerPoint.

كما يتيح VBA التحكم في Slide Master وتنفيذ نفس العمليات المدعومة في PowerPoint: تغيير الخلفيات، إضافة الأشكال، تخصيص التخطيط، إلخ. يوفر Aspose.Slides آليات مرنة لاستخدام Slide Masters وأداء المهام الأساسية معها.

هذه هي عمليات Slide Master الأساسية:

  • إنشاء أو Slide Master.
  • تطبيق Slide Master على شرائح العرض.
  • تغيير خلفية Slide Master.
  • إضافة صورة أو عنصر نائب أو Smart Art، إلخ إلى Slide Master.

هذه عمليات أكثر تقدماً تتعلق بـ Slide Master:

  • مقارنة Slide Masters.
  • دمج Slide Masters.
  • تطبيق عدة Slide Masters.
  • نسخ شريحة مع Slide Master إلى عرض تقديمي آخر.
  • العثور على Slide Masters مكررة في العروض.
  • تعيين Slide Master كعرض افتراضي للعرض التقديمي.

كيف يتم تطبيق Slide Master

قبل العمل مع Slide Master، قد ترغب في فهم كيفية استخدامها في العروض وتطبيقها على الشرائح.

  • يحتوي كل عرض تقديمي على Slide Master واحد على الأقل بشكل افتراضي.
  • يمكن للعرض التقديمي أن يحتوي على عدة Slide Masters. يمكنك إضافة عدة Slide Masters واستخدامها لتنسيق أجزاء مختلفة من العرض بطرق مختلفة.

في Aspose.Slides، يُمثل Slide Master النوع IMasterSlide.

يحتوي كائن Aspose.Slides Presentation على قائمة get_Masters() من النوع IMasterSlideCollection التي تضم جميع الشرائح الرئيسية المعرفة في العرض.

بالإضافة إلى عمليات CRUD، يحتوي واجهة IMasterSlideCollection على الطريقتين المفيدتين: AddClone() وInsertClone(). هذه الطرق موروثة من وظيفة استنساخ الشريحة الأساسية. لكن عند التعامل مع Slide Masters، تسمح لك بتنفيذ إعدادات معقدة.

عند إضافة شريحة جديدة إلى عرض تقديمي، يتم تطبيق Slide Master عليها تلقائيًا. يتم اختيار Slide Master الخاص بالشريحة السابقة بشكل افتراضي.

ملاحظة: تُخزن شرائح العرض في قائمة get_Slides() ، وتُضاف كل شريحة جديدة إلى نهاية المجموعة بشكل افتراضي. إذا كان العرض يحتوي على Slide Master واحد، يتم اختيار ذلك الـ Slide Master لجميع الشرائح الجديدة. هذا هو السبب في أنك لا تحتاج إلى تحديد Slide Master لكل شريحة جديدة تُنشئها.

المبدأ نفسه في PowerPoint وAspose.Slides. على سبيل المثال، في PowerPoint، عندما تضيف شريحة جديدة، يمكنك فقط الضغط على الخط السفلي تحت الشريحة الأخيرة ثم تُنشأ شريحة جديدة (مع Slide Master الخاص بالعرض الأخير):

todo:image_alt_text

في Aspose.Slides، يمكنك تنفيذ المهمة المكافئة باستخدام طريقة AddClone() ضمن فئة Presentation.

Slide Master في هيكل Slides

استخدام Slide Layouts مع Slide Master يتيح أقصى قدر من المرونة. يتيح Slide Layout لك تعيين جميع الأنماط نفسها كما في Slide Master (الخلفية، الخطوط، الأشكال، إلخ). ومع ذلك، عندما يتم دمج عدة Slide Layouts على Slide Master، يُنشأ نمط جديد. عند تطبيق Slide Layout على شريحة واحدة، يمكنك تغيير نمطها عن النمط المُطبق من قبل Slide Master.

Slide Master يسبق جميع عناصر الإعداد: Slide Master → Slide Layout → Slide:

todo:image_alt_text

كل كائن IMasterSlide يحتوي على الخاصية get_LayoutSlides() التي تُرجع قائمة Slide Layouts. نوع Slide يمتلك الخاصية get_LayoutSlide() التي تُشير إلى Slide Layout المُطبق على الشريحة. التفاعل بين الشريحة وSlide Master يتم عبر Slide Layout.

ما يُكوّن Slide Master

لفهم كيفية تعديل Slide Master، عليك معرفة مكوناته. هذه هي الخصائص الأساسية لـ MasterSlide:

طرق Slide Master:

  • GetDependingSlides - الحصول على جميع الشرائح التي تعتمد على Slide Master.
  • ApplyExternalThemeToDependingSlides - يتيح لك إنشاء Slide Master جديد بناءً على Slide Master الحالي وسمة جديدة. سيتم تطبيق الـ Slide Master الجديد على جميع الشرائح التابعة.

الحصول على Slide Master

في PowerPoint، يمكن الوصول إلى Slide Master عبر القائمة View → Slide Master:

todo:image_alt_text

باستخدام Aspose.Slides، يمكنك الوصول إلى Slide Master بهذه الطريقة:

System::SharedPtr<IMasterSlide> master = pres->get_Masters()->idx_get(0);

تمثل واجهة IMasterSlide Slide Master. الخاصية get_Masters() (المرتبطة بنوع IMasterSlideCollection) تحتوي على قائمة بجميع Slide Masters المعرفة في العرض.

إضافة صورة إلى Slide Master

عند إضافة صورة إلى Slide Master، ستظهر تلك الصورة على جميع الشرائح التي تعتمد على هذا الـ Slide Master.

على سبيل المثال، يمكنك وضع شعار شركتك وبعض الصور على Slide Master ثم الرجوع إلى وضع تحرير الشرائح. يجب أن ترى الصورة على كل شريحة.

todo:image_alt_text

يمكنك إضافة صور إلى Slide Master باستخدام Aspose.Slides:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>();

System::SharedPtr<IPPImage> image = pres->get_Images()->AddImage(System::IO::File::ReadAllBytes(u"image.png"));
pres->get_Master(0)->get_Shapes()->AddPictureFrame(ShapeType::Rectangle, 10.0f, 10.0f, 100.0f, 100.0f, image);

pres->Save(u"pres.pptx", SaveFormat::Pptx);

إضافة عنصر نائب إلى Slide Master

هذه الحقول النصية هي عناصر نائب قياسية على Slide Master:

  • انقر لتحرير نمط عنوان الـ Master
  • تحرير أنماط نص الـ Master
  • المستوى الثاني
  • المستوى الثالث

تظهر أيضًا على الشرائح المستندة إلى Slide Master. يمكنك تحرير تلك العناصر النائبة على Slide Master وسيتم تطبيق التغييرات تلقائيًا على الشرائح.

في PowerPoint، يمكنك إضافة عنصر نائب عبر مسار Slide Master → Insert Placeholder:

todo:image_alt_text

لنستعرض مثالًا أكثر تعقيدًا للعناصر النائبة مع Aspose.Slides. اعتبار شريحة تحتوي على عناصر نائب مُقَصَّدة من Slide Master:

todo:image_alt_text

نريد تغيير تنسيق العنوان والعنوان الفرعي على Slide Master بهذه الطريقة:

todo:image_alt_text

أولاً، نسترجع محتوى عنصر العنوان النائب من كائن Slide Master ثم نستخدم الحقل PlaceHolder.FillFormat:

System::SharedPtr<IAutoShape> FindPlaceholder(System::SharedPtr<IMasterSlide> master, PlaceholderType type)
{
    for (auto& shape : master->get_Shapes())
    {
        System::SharedPtr<IAutoShape> autoShape = System::AsCast<Aspose::Slides::IAutoShape>(shape);
        if (autoShape != nullptr)
        {
            if (autoShape->get_Placeholder()->get_Type() == type)
            {
                return autoShape;
            }
        }
    }
    return nullptr;
}

void Main()
{
    auto pres = System::MakeObject<Presentation>();
    System::SharedPtr<IMasterSlide> master = pres->get_Masters()->idx_get(0);
    System::SharedPtr<IAutoShape> placeHolder = FindPlaceholder(master, Aspose::Slides::PlaceholderType::Title);
    auto fillFormat = placeHolder->get_FillFormat();
    fillFormat->set_FillType(Aspose::Slides::FillType::Gradient);
    auto gradientFormat = fillFormat->get_GradientFormat();
    gradientFormat->set_GradientShape(Aspose::Slides::GradientShape::Linear);
    gradientFormat->get_GradientStops()->Add(0.0f, System::Drawing::Color::FromArgb(255, 0, 0));
    gradientFormat->get_GradientStops()->Add(255.0f, System::Drawing::Color::FromArgb(128, 0, 128));
    
    pres->Save(u"pres.pptx", Aspose::Slides::Export::SaveFormat::Pptx);
}

سيتغير نمط العنوان والتنسيق لجميع الشرائح المستندة إلى Slide Master:

todo:image_alt_text

تغيير الخلفية على Slide Master

عند تغيير لون خلفية الشريحة الرئيسية، ستحصل جميع الشرائح العادية في العرض على اللون الجديد. توضح هذه الشيفرة C++ العملية:

auto pres = System::MakeObject<Presentation>();

auto master = pres->get_Masters()->idx_get(0);
auto background = master->get_Background();
background->set_Type(Aspose::Slides::BackgroundType::OwnBackground);
background->get_FillFormat()->set_FillType(Aspose::Slides::FillType::Solid);
background->get_FillFormat()->get_SolidFillColor()->set_Color(System::Drawing::Color::get_Green());
    
pres->Save(u"pres.pptx", Aspose::Slides::Export::SaveFormat::Pptx);

استنساخ Slide Master إلى عرض تقديمي آخر

لنسخ Slide Master إلى عرض تقديمي آخر، استدعِ طريقة AddClone() من العرض الوجهة مع تمرير Slide Master إليه. تُظهر هذه الشيفرة C++ كيفية استنساخ Slide Master إلى عرض تقديمي آخر:

auto presSource = System::MakeObject<Presentation>();
auto presTarget = System::MakeObject<Presentation>();
    
auto master = presTarget->get_Masters()->AddClone(presSource->get_Masters()->idx_get(0));

إضافة عدة Slide Masters إلى عرض تقديمي

يسمح Aspose.Slides لك بإضافة عدة Slide Masters وSlide Layouts إلى أي عرض تقديمي. يتيح لك ذلك إعداد الأنماط والتخطيطات وخيارات التنسيق لشرائح العرض بطرق متعددة.

في PowerPoint، يمكنك إضافة Slide Masters وLayouts جديدة (من قائمة “Slide Master”) بهذه الطريقة:

todo:image_alt_text

باستخدام Aspose.Slides، يمكنك إضافة Slide Master جديد باستدعاء طريقة AddClone():

pres->get_Masters()->AddClone(pres->get_Masters()->idx_get(0));

مقارنة Slide Masters

تنفّذ شريحة Master واجهة IBaseSlide التي تحتوي على طريقة Equals() يمكن استخدامها لمقارنة الشرائح. تُرجع true عندما تكون Slide Masters متماثلة في الهيكل والمحتوى الثابت.

تُعد الشرائح متساوية إذا كانت الأشكال والأنماط والنصوص والرسوم المتحركة والإعدادات الأخرى متطابقة. لا تأخذ المقارنة بعين الاعتبار القيم الفريدة للمعرف (مثل SlideId) أو المحتوى الديناميكي (مثل قيمة التاريخ الحالية في عنصر نائب التاريخ).

تعيين Slide Master كعرض افتراضي للعرض التقديمي

يسمح Aspose.Slides لك بتعيين Slide Master كعرض افتراضي للعرض التقديمي. العرض الافتراضي هو ما تراه أولاً عند فتح العرض.

تُظهر هذه الشيفرة كيفية تعيين Slide Master كعرض افتراضي للعرض التقديمي في C++:

pres->get_ViewProperties()->set_LastView(Aspose::Slides::ViewType::SlideMasterView);

إزالة Slide Masters غير المستخدمة

يوفر Aspose.Slides طريقة RemoveUnusedMasterSlides() (من فئة Compress) لتسمح لك بحذف Slide Masters غير المرغوب فيها وغير المستخدمة. تُظهر هذه الشيفرة C++ كيفية إزالة Slide Master من عرض PowerPoint:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");

LowCode::Compress::RemoveUnusedMasterSlides(pres);

pres->Save(u"pres-out.pptx", SaveFormat::Pptx);

FAQ

ما هو Slide Master في PowerPoint؟

Slide Master هو قالب شريحة يحدد التخطيط، الأنماط، السمات، الخطوط، الخلفية، والخصائص الأخرى للشرائح في عرض تقديمي. يتيح لك تعيين وتغيير مظهر جميع شرائح العرض مرة واحدة.

كيف يُطبق Slide Master في عرض تقديمي؟

كل عرض تقديمي يحتوي على Slide Master واحد على الأقل بشكل افتراضي. عند إضافة شريحة جديدة، يُطبق Slide Master عليها تلقائيًا، عادةً ما يكون Master الشريحة السابقة هو المختار. يمكن للعرض أن يحتوي على عدة Slide Masters لتنسيق أجزاء مختلفة بطريقة فريدة.

ما العناصر التي يمكن تخصيصها في Slide Master؟

يتكوّن Slide Master من عدة خصائص أساسية يمكن تخصيصها:

  • Background: تعيين خلفية الشريحة.
  • BodyStyle: تعريف أنماط النص لجسم الشريحة.
  • Shapes: إدارة جميع الأشكال على Slide Master، بما في ذلك العناصر النائبة وإطارات الصور.
  • Controls: التعامل مع عناصر تحكم ActiveX.
  • ThemeManager: الوصول إلى مدير السمة.
  • HeaderFooterManager: إدارة الرؤوس والتذييلات.

كيف يمكنني إضافة صورة إلى Slide Master؟

إضافة صورة إلى Slide Master يضمن ظهورها على جميع الشرائح التي تعتمد على ذلك الـ Master. على سبيل المثال، وضع شعار الشركة على Slide Master سيظهر على كل شريحة في العرض.

كيف يرتبط Slide Master بـ Slide Layouts؟

تعمل Slide Layouts بالتعاون مع Slide Master لتوفير مرونة في تصميم الشرائح. بينما يحدد Slide Master الأنماط والسمات العامة، تسمح Slide Layouts بتغييرات في ترتيب المحتوى. الت hierarchy كالتالي:

  • Slide Master → يحدد الأنماط العامة.
  • Slide Layout → يوفر ترتيبات محتوى مختلفة.
  • Slide → يرث التصميم من Slide Layout الخاص به.

هل يمكن أن يكون لدي عدة Slide Masters في عرض تقديمي واحد؟

نعم، يمكن للعرض أن يحتوي على عدة Slide Masters. يتيح لك ذلك تنسيق أقسام مختلفة من العرض بطرق متنوعة، مما يوفر مرونة في التصميم.

كيف يمكنني الوصول إلى Slide Master وتعديله باستخدام Aspose.Slides؟

في Aspose.Slides، يُمثّل Slide Master الواجهة IMasterSlide. يمكنك الوصول إلى Slide Master باستخدام طريقة get_Masters لكائن Presentation.