إدارة رؤوس وتذييلات العرض التقديمي في C++

نظرة عامة

يستخدم PowerPoint عناصر نائب مختلفة للرأس والتذييل بناءً على نوع الصفحة. يتيح Aspose.Slides للـ C++ التحكم في النص ورؤية هذه العناصر النائبة عبر واجهات مدير الرأس/التذييل.

العناصر النائبة المتاحة تعتمد على النطاق:

النطاق الرأس التذييل التاريخ/الوقت رقم الشريحة/الصفحة
شريحة عادية لا نعم نعم نعم
قالب ملاحظات نعم نعم نعم نعم
شريحة ملاحظات نعم نعم نعم نعم
قالب توزيع نعم نعم نعم نعم

الشريحة العادية في العرض التقديمي لا تحتوي على عنصر نائب للرأس. تتوفر عناصر الرأس في صفحات الملاحظات والتوزيع. بالنسبة للشرائح العادية، استخدم عناصر التذييل، التاريخ/الوقت، ورقم الشريحة بدلاً من ذلك.

نطاق التغيير يعتمد على المدير الذي تستخدمه. يتحكم واجهة ISlideHeaderFooterManager في شريحة عادية واحدة. تتحكم واجهة INotesSlideHeaderFooterManager في شريحة ملاحظات واحدة. يمكن لمديري القالب والتخطيط أيضًا نشر الإعدادات إلى الشرائح التابعة، بينما تتحكم واجهة IMasterHandoutSlideHeaderFooterManager في قالب التوزيع.

تعيين التذييل، التاريخ/الوقت، وأرقام الشرائح على الشرائح العادية

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

استخدم SetFooterText وSetDateTimeText لتعيين النص، واستخدم SetFooterVisibility، SetDateTimeVisibility، وSetSlideNumberVisibility لإظهار العناصر النائبة المقابلة.

المثال التالي يطبق نفس التذييل، نص التاريخ/الوقت، ورؤية رقم الشريحة على جميع الشرائح العادية:

#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/ISlideHeaderFooterManager.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/enumerator_adapter.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

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

for (const auto& slide : System::IterateOver(presentation->get_Slides()))
{
    auto headerFooterManager = slide->get_HeaderFooterManager();

    headerFooterManager->SetFooterText(u"Company Confidential");
    headerFooterManager->SetFooterVisibility(true);

    headerFooterManager->SetDateTimeText(u"Date and time text");
    headerFooterManager->SetDateTimeVisibility(true);

    headerFooterManager->SetSlideNumberVisibility(true);
}

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

إذا كنت بحاجة لتحديث شريحة واحدة فقط، عُد إلى تلك الشريحة مباشرة عبر Presentation::get_Slide بدلاً من iterating عبر مجموعة الشرائح بالكامل.

تعيين الرؤوس والتذييلات على قالب الملاحظات

يحدد قالب الملاحظات تنسيقًا مشتركًا وسلوك العناصر النائبة لصفحات الملاحظات. استخدم واجهة IMasterNotesSlideHeaderFooterManager عندما تريد تغيير قالب الملاحظات نفسه فقط.

المثال التالي يضع رأسًا، تذييلًا، ونص تاريخ/وقت على قالب الملاحظات ويجعل جميع العناصر النائبة المدعومة مرئية في ذلك القالب:

#include <DOM/IMasterNotesSlide.h>
#include <DOM/IMasterNotesSlideHeaderFooterManager.h>
#include <DOM/IMasterNotesSlideManager.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");
auto masterNotesSlide = presentation->get_MasterNotesSlideManager()->get_MasterNotesSlide();

if (masterNotesSlide != nullptr)
{
    auto headerFooterManager = masterNotesSlide->get_HeaderFooterManager();

    headerFooterManager->SetHeaderText(u"Notes header");
    headerFooterManager->SetHeaderVisibility(true);

    headerFooterManager->SetFooterText(u"Notes footer");
    headerFooterManager->SetFooterVisibility(true);

    headerFooterManager->SetDateTimeText(u"Date and time text");
    headerFooterManager->SetDateTimeVisibility(true);

    headerFooterManager->SetSlideNumberVisibility(true);
}

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

طريقة IMasterNotesSlideManager::get_MasterNotesSlide تُعيد nullptr عندما لا يحتوي العرض التقديمي على قالب ملاحظات.

تطبيق إعدادات قالب الملاحظات على شرائح الملاحظات التابعة

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

على سبيل المثال، تُحدّث كل من SetHeaderAndChildHeadersText وSetHeaderAndChildHeadersVisibility رأس قالب الملاحظات وجميع رؤوس الأطفال. تتوفر طرق مماثلة للتذييل، التاريخ/الوقت، وأرقام الشرائح.

#include <DOM/IMasterNotesSlide.h>
#include <DOM/IMasterNotesSlideHeaderFooterManager.h>
#include <DOM/IMasterNotesSlideManager.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");
auto masterNotesSlide = presentation->get_MasterNotesSlideManager()->get_MasterNotesSlide();

if (masterNotesSlide != nullptr)
{
    auto headerFooterManager = masterNotesSlide->get_HeaderFooterManager();

    headerFooterManager->SetHeaderAndChildHeadersText(u"Notes header");
    headerFooterManager->SetHeaderAndChildHeadersVisibility(true);

    headerFooterManager->SetFooterAndChildFootersText(u"Notes footer");
    headerFooterManager->SetFooterAndChildFootersVisibility(true);

    headerFooterManager->SetDateTimeAndChildDateTimesText(u"Date and time text");
    headerFooterManager->SetDateTimeAndChildDateTimesVisibility(true);

    headerFooterManager->SetSlideNumberAndChildSlideNumbersVisibility(true);
}

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

طرق النشر المستخدمة أعلاه هي SetFooterAndChildFootersText، SetFooterAndChildFootersVisibility، SetDateTimeAndChildDateTimesText، SetDateTimeAndChildDateTimesVisibility، وSetSlideNumberAndChildSlideNumbersVisibility.

تعيين الرؤوس والتذييلات على شريحة ملاحظات فردية

تنتمي شريحة الملاحظات إلى شريحة عادية محددة. استخدم واجهة INotesSlideHeaderFooterManager عندما تريد تخصيص تلك الصفحة الملاحظة فقط.

طريقة INotesSlideManager::AddNotesSlide تُعيد شريحة الملاحظات للشفرة الحالية وتُنشئ واحدة إذا لم تكن موجودة. المثال التالي يضبط صفحة الملاحظات المرتبطة بأول شريحة في العرض التقديمي:

#include <DOM/INotesSlide.h>
#include <DOM/INotesSlideHeaderFooterManager.h>
#include <DOM/INotesSlideManager.h>
#include <DOM/ISlide.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");
auto slide = presentation->get_Slide(0);
auto notesSlide = slide->get_NotesSlideManager()->AddNotesSlide();
auto headerFooterManager = notesSlide->get_HeaderFooterManager();

headerFooterManager->SetHeaderText(u"Header for the first notes page");
headerFooterManager->SetHeaderVisibility(true);

headerFooterManager->SetFooterText(u"Footer for the first notes page");
headerFooterManager->SetFooterVisibility(true);

headerFooterManager->SetDateTimeText(u"Date and time text");
headerFooterManager->SetDateTimeVisibility(true);

headerFooterManager->SetSlideNumberVisibility(true);

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

إذا قمت أولاً بنشر الإعدادات من قالب الملاحظات ثم غيرت شريحة ملاحظات فردية، فإن إعدادات الشريحة اللاحقة تسمح لك بتخصيص تلك الصفحة بشكل مستقل.

تعيين الرؤوس والتذييلات على قالب التوزيع

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

استخدم IMasterHandoutSlideManager::get_MasterHandoutSlide للوصول إلى قالب التوزيع. إذا لم يكن موجودًا، استدعِ IMasterHandoutSlideManager::SetDefaultMasterHandoutSlide لإنشاء قالب التوزيع الافتراضي.

#include <DOM/IMasterHandoutSlide.h>
#include <DOM/IMasterHandoutSlideHeaderFooterManager.h>
#include <DOM/IMasterHandoutSlideManager.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>

using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;

auto presentation = System::MakeObject<Presentation>(u"presentation.pptx");
auto masterHandoutSlideManager = presentation->get_MasterHandoutSlideManager();
auto masterHandoutSlide = masterHandoutSlideManager->get_MasterHandoutSlide();

if (masterHandoutSlide == nullptr)
{
    masterHandoutSlide = masterHandoutSlideManager->SetDefaultMasterHandoutSlide();
}

if (masterHandoutSlide != nullptr)
{
    auto headerFooterManager = masterHandoutSlide->get_HeaderFooterManager();

    headerFooterManager->SetHeaderText(u"Handout header");
    headerFooterManager->SetHeaderVisibility(true);

    headerFooterManager->SetFooterText(u"Handout footer");
    headerFooterManager->SetFooterVisibility(true);

    headerFooterManager->SetDateTimeText(u"Date and time text");
    headerFooterManager->SetDateTimeVisibility(true);

    headerFooterManager->SetSlideNumberVisibility(true);
}

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

فهم النطاق والوراثة

اختر مدير الرأس/التذييل الذي يطابق النطاق الذي تريد تغييره:

  • ISlideHeaderFooterManager يغيّر إعدادات التذييل، التاريخ/الوقت، ورقم الشريحة لشريحة عادية واحدة.
  • ILayoutSlideHeaderFooterManager يتحكم في شريحة تخطيط ويمكنه نشر الإعدادات المدعومة إلى الشرائح التابعة.
  • IMasterSlideHeaderFooterManager يتحكم في قالب شريحة عادي ويمكنه نشر الإعدادات المدعومة إلى الشرائح التابعة.
  • IMasterNotesSlideHeaderFooterManager يتحكم في قالب الملاحظات ويمكنه نشر الإعدادات إلى جميع شرائح الملاحظات التابعة.
  • INotesSlideHeaderFooterManager يغيّر شريحة ملاحظات واحدة ويدعم عنصر نائب للرأس بالإضافة إلى التذييل، التاريخ/الوقت، ورقم الشريحة.
  • IMasterHandoutSlideHeaderFooterManager يغيّر قالب التوزيع ويدعم جميع الأنواع الأربعة من العناصر النائبة.

استخدم النشر من قالب أو تخطيط عندما يجب تطبيق الإعداد نفسه عبر هيكله. استخدم مدير شريحة أو شريحة ملاحظات فردية عندما تحتاج إلى إعداد محلي لصفحة واحدة.

الأسئلة المتداولة

هل يمكنني إضافة رأس إلى شريحة عادية؟

لا. لا يُعرّف PowerPoint عنصرًا نائبًا للرأس للشرائح العادية. استخدم التذييل، التاريخ/الوقت، ورقم الشريحة على الشرائح العادية. تتوفر عناصر رأس في صفحات الملاحظات والتوزيع.

ماذا إذا لم يكن عنصر التذييل أو التاريخ/الوقت أو رقم الشريحة مرئيًا؟

استخدم مدير الرأس/التذييل المقابل للتحقق من رؤيته وتمكينه عند الحاجة. على سبيل المثال، يُظهر get_IsFooterVisible ما إذا كان عنصر التذييل موجودًا، وتغيّر SetFooterVisibility رؤيته.

كيف أبدأ ترقيم الشرائح من قيمة غير 1؟

استخدم Presentation::set_FirstSlideNumber لتعيين رقم الشريحة الأول. ثم تستخدم عناصر رقم الشريحة التسلسل المحدث.

ماذا يحدث للرؤوس والتذييلات عند التصدير إلى PDF أو صور أو HTML؟

العناصر المرئية للرأس والتذييل تُرسم مع باقي محتوى العرض التقديمي في تنسيق الخرج. مظهرها يعتمد على نوع الصفحة التي يتم تصديرها وإعدادات رؤية العناصر النائبة المقابلة.