تطبيق أو تغيير تخطيطات الشرائح في .NET

نظرة عامة

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

أكثر التخطيطات شيوعًا تشمل:

  • شريحة عنوان: تحتوي على عناصر نائبة للعنوان والعنوان الفرعي.
  • العنوان والمحتوى: تحتوي على عنصر نائب للعنوان وعنصر نائب عام للمحتوى.
  • فارغ: لا يحتوي على عناصر نائبة وهو مفيد عندما يتم وضع كل شكل يدويًا.

فهم وراثة التخطيط

للعرض التقديمي ثلاث مستويات مترابطة:

  1. تُعرّف شريحة ماستر السمة، التنسيق المشترك، الخلفيات، والكائنات العامة.
  2. تنتمي شريحة تخطيط إلى ماستر وتحدد ترتيبًا معينًا للعناصر النائبة.
  3. تستخدم شريحة عادية تخطيطًا واحدًا وتخزّن المحتوى المدخل لتلك الشريحة.

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

أضف العناصر النائبة المطلوبة إلى تخطيط قبل إنشاء الشرائح منه. إضافة عنصر نائب آخر إلى تخطيط لاحقًا لا يضيف تلقائيًا شكل عنصر نائب مماثل إلى الشرائح العادية الموجودة.

للعلاقة نتيجتان مهمتان:

  • يمكن أن يؤدي تغيير التنسيق الموروث أو هندسة العنصر النائب الموجود في التخطيط إلى تحديث كل الشرائح المعتمدة عليه. قبل تحرير تخطيط مُستَخدم، راجع الشرائح التابعة وتأكّد من النتيجة.
  • لا يمكن إزالة تخطيط لا يزال مستخدمًا من قبل شريحة. أعِد تعيين الشرائح التابعة إلى تخطيط آخر أولًا، أو احذف فقط التخطيطات غير المستخدمة.

لمزيد من المعلومات حول المستوى العلوي لهذه الهرمية، راجع شريحة ماستر.

لإخفاء الشعارات أو الأشكال الزخرفية للماستر على شريحة واحدة أو عبر تخطيط مشترك، انظر التحكم في رؤية رسومات الماستر. المثال يقارن بين شريحتين تستخدمان نفس الماستر.

اختيار وتطبيق تخطيط شريحة

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

المثال التالي يبحث عن العنوان والمحتوى في أول ماستر. إذا كان ذلك التخطيط غير متوفر، فإنه يعود عمدًا إلى فارغ. الفحص الثاني للـ null ضروري لأن العرض التقديمي قد يحتوي على تخطيطات مخصصة فقط. ثم يُطبق التخطيط المختار على أول شريحة عادية عبر خاصية ISlide.LayoutSlide.

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var layoutSlides = presentation.Masters[0].LayoutSlides;
var targetLayout = layoutSlides.GetByType(SlideLayoutType.TitleAndObject) ?? layoutSlides.GetByType(SlideLayoutType.Blank);

if (targetLayout == null)
{
    throw new InvalidOperationException("The first master does not contain a suitable layout slide.");
}

presentation.Slides[0].LayoutSlide = targetLayout;
presentation.Save("output-with-new-layout.pptx", SaveFormat.Pptx);

تغيير تخطيط الشريحة لا يزيل الأشكال العادية المضافة مباشرةً إلى الشريحة. ومع ذلك، قد تتغير مواضع العناصر النائبة، التنسيق الموروث، والتطابق بين العناصر النائبة الحالية والتخطيط الجديد، لذا يُفضَّل فحص الناتج عند التبديل بين تخطيطات مختلفة جذريًا.

إضافة شريحة تخطيط

الاختيار والإنشاء عمليتان منفصلتان. المثال السابق يختار تخطيطًا موجودًا؛ لا ينشئ واحدًا. لإنشاء تخطيط، استدعِ طريقة IMasterLayoutSlideCollection.Add على مجموعة تخطيطات الماستر المستهدف.

المثال التالي يضيف دائمًا تخطيط العنوان والمحتوى جديدًا اسمه Report Title and Content، ثم يضيف شريحة عادية تعتمد عليه. يجب أن تكون أسماء التخطيطات فريدة داخل المجموعة.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var masterSlide = presentation.Masters[0];
var reportLayout = masterSlide.LayoutSlides.Add(SlideLayoutType.TitleAndObject, "Report Title and Content");
presentation.Slides.AddEmptySlide(reportLayout);

presentation.Save("output-with-report-layout.pptx", SaveFormat.Pptx);

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

إضافة عناصر نائبة إلى شريحة تخطيط

توفر خاصية ILayoutSlide.PlaceholderManager كائنًا من نوع ILayoutPlaceholderManager لإضافة أشكال عناصر نائبة إلى التخطيط.

عنصر نائب في PowerPoint ILayoutPlaceholderManager طريقة
محتوى AddContentPlaceholder(float x, float y, float width, float height)
محتوى (عمودي) AddVerticalContentPlaceholder(float x, float y, float width, float height)
نص AddTextPlaceholder(float x, float y, float width, float height)
نص (عمودي) AddVerticalTextPlaceholder(float x, float y, float width, float height)
صورة AddPicturePlaceholder(float x, float y, float width, float height)
مخطط AddChartPlaceholder(float x, float y, float width, float height)
جدول AddTablePlaceholder(float x, float y, float width, float height)
SmartArt AddSmartArtPlaceholder(float x, float y, float width, float height)
وسائط AddMediaPlaceholder(float x, float y, float width, float height)
صورة عبر الإنترنت AddOnlineImagePlaceholder(float x, float y, float width, float height)

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

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation();

var blankLayout = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);

if (blankLayout == null)
{
    throw new InvalidOperationException("The presentation does not contain a Blank layout slide.");
}

var placeholderManager = blankLayout.PlaceholderManager;
placeholderManager.AddContentPlaceholder(20, 20, 310, 270);
placeholderManager.AddVerticalTextPlaceholder(350, 20, 350, 270);
placeholderManager.AddChartPlaceholder(20, 310, 310, 180);
placeholderManager.AddTablePlaceholder(350, 310, 350, 180);

presentation.Slides.AddEmptySlide(blankLayout);
presentation.Save("output-with-placeholders.pptx", SaveFormat.Pptx);

النتيجة:

العناصر النائبة على شريحة التخطيط

إزالة شرائح التخطيط غير المستخدمة

استخدم طريقة Compress.RemoveUnusedLayoutSlides لإزالة التخطيطات التي لا تشير إليها أي شريحة عادية. تترك الطريقة التخطيطات التي لا يزال يُستَخدم فيها سليمة.

using Aspose.Slides;
using Aspose.Slides.Export;
using Aspose.Slides.LowCode;

using var presentation = new Presentation("input.pptx");

Compress.RemoveUnusedLayoutSlides(presentation);
presentation.Save("output-without-unused-layouts.pptx", SaveFormat.Pptx);

لإزالة تخطيط معين، استخدم أولًا خاصية HasDependingSlides أو طريقة GetDependingSlides. أعد تعيين أي شرائح تابعة قبل استدعاء ILayoutSlide.Remove. محاولة إزالة تخطيط مُستَخدم تُثير استثناءً من نوع PptxEditException.

التحكم في رؤية تذييل الصفحة على شريحة التخطيط

للخطيط تذييل صفحة، رقم شريحة، وعناصر نائبة للوقت/التاريخ خاصة به. استخدم خاصية ILayoutSlide.HeaderFooterManager للتحكم في تلك العناصر النائبة لتخطيط واحد. وهذا مفيد عندما يجب أن تُظهر تخطيطات المحتوى تذييلات ولكن لا تُظهر تخطيطات العناوين.

المثال التالي يختار تخطيطًا بأمان ويجعل عناصر تذييله مرئية:

using System;
using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var layoutSlide = presentation.LayoutSlides.GetByType(SlideLayoutType.TitleAndObject) ?? presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);

if (layoutSlide == null)
{
    throw new InvalidOperationException("The presentation does not contain a suitable layout slide.");
}

var headerFooterManager = layoutSlide.HeaderFooterManager;
headerFooterManager.SetFooterVisibility(true);
headerFooterManager.SetSlideNumberVisibility(true);
headerFooterManager.SetDateTimeVisibility(true);
headerFooterManager.SetFooterText("Footer text");
headerFooterManager.SetDateTimeText("Date and time text");

presentation.Save("output-with-layout-footers.pptx", SaveFormat.Pptx);

التحكم في رؤية تذييل الصفحة على ماستر وتخطيطاته الفرعية

لتطبيق إعدادات تذييل متسقة عبر هرمية ماستر، استخدم خاصية IMasterSlide.HeaderFooterManager. تعمل طرق النشر الخاصة بـ IMasterSlideHeaderFooterManager على الماستر وتخطيطاته التابعة والشرائح العادية؛ ولا تستهدف شريحة عادية واحدة فقط.

using Aspose.Slides;
using Aspose.Slides.Export;

using var presentation = new Presentation("input.pptx");

var headerFooterManager = presentation.Masters[0].HeaderFooterManager;
headerFooterManager.SetFooterAndChildFootersVisibility(true);
headerFooterManager.SetSlideNumberAndChildSlideNumbersVisibility(true);
headerFooterManager.SetDateTimeAndChildDateTimesVisibility(true);
headerFooterManager.SetFooterAndChildFootersText("Footer text");
headerFooterManager.SetDateTimeAndChildDateTimesText("Date and time text");

presentation.Save("output-with-master-footers.pptx", SaveFormat.Pptx);

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

ما الفرق بين شريحة ماستر وشريحة تخطيط؟

تحدد شريحة الماستر سمة العرض التقديمي والتنسيق المشترك. تنتمي شريحة التخطيط إلى ماستر وتعرّف ترتيبًا قابلاً لإعادة الاستخدام من العناصر النائبة. تستخدم الشرائح العادية تلك التخطيطات وتخزن محتوى الشريحة الخاص.

هل يمكنني نسخ شريحة تخطيط من عرض تقديمي إلى آخر؟

نعم. أضف نسخة إلى مجموعة الوجهة باستخدام طريقة AddClone. عند النسخ بين العروض، تحقق أيضًا من الخطوط، السمات، الصور، والموارد الأخرى المستخدمة في التخطيط المصدر.

ماذا يحدث إذا قمت بتعديل تخطيط مُستَخدم بالفعل؟

ترث الشرائح التابعة تغييرات التخطيط ما لم تقم بتجاوز التنسيق أو الكائنات المتأثرة محليًا. وبالتالي قد تتغير هندسة العناصر النائبة والتنسيق الموروث على العديد من الشرائح دفعة واحدة. استخدم GetDependingSlides لتحديد الشرائح المتأثرة قبل تحرير التخطيط.

ماذا يحدث إذا أزلت تخطيطًا لا يزال قيد الاستخدام؟

تطرح Aspose.Slides استثناءً من نوع PptxEditException. أعد تعيين الشرائح التابعة أولًا، أو استخدم RemoveUnusedLayoutSlides لإزالة التخطيطات غير المرجعية فقط.