มาสเตอร์สไลด์

มาสเตอร์สไลด์เป็นระดับบนสุดของลำดับชั้นการสืบทอดสไลด์ใน PowerPoint. A master slide กำหนดองค์ประกอบการออกแบบทั่วไป เช่น พื้นหลัง, โลโก้, และการจัดรูปแบบข้อความ. Layout slides สืบทอดจาก master slides, และ normal slides สืบทอดจาก layout slides.

บทความนี้แสดงวิธีสร้าง, แก้ไข และจัดการมาสเตอร์สไลด์โดยใช้ Aspose.Slides for C++.

เพิ่มมาสเตอร์สไลด์

ตัวอย่างนี้แสดงวิธีสร้างมาสเตอร์สไลด์ใหม่โดยการคัดลอกมาสเตอร์สไลด์เริ่มต้น. จากนั้นเพิ่มแบนเนอร์ชื่อบริษัทไปยังสไลด์ทั้งหมดผ่านการสืบทอดเลย์เอาต์.

static void AddMasterSlide()
{
    auto presentation = MakeObject<Presentation>();

    // คัดลอกมาสเตอร์สไลด์เริ่มต้น.
    auto defaultMasterSlide = presentation->get_Master(0);
    auto newMasterSlide = presentation->get_Masters()->AddClone(defaultMasterSlide);

    // เพิ่มแบนเนอร์ชื่อบริษัทที่ด้านบนของมาสเตอร์สไลด์.
    auto textBox = newMasterSlide->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 0, 0, 720, 25);
    textBox->get_TextFrame()->set_Text(u"Company Name");
    auto paragraph = textBox->get_TextFrame()->get_Paragraph(0);
    auto textFormat = paragraph->get_ParagraphFormat()->get_DefaultPortionFormat();
    textFormat->get_FillFormat()->set_FillType(FillType::Solid);
    textFormat->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Black());
    textBox->get_FillFormat()->set_FillType(FillType::NoFill);

    // กำหนดมาสเตอร์สไลด์ใหม่ให้กับสไลด์เลย์เอาต์.
    auto layoutSlide = presentation->get_LayoutSlide(0);
    layoutSlide->set_MasterSlide(newMasterSlide);

    // กำหนดสไลด์เลย์เอาต์ให้กับสไลด์แรกในงานนำเสนอ.
    presentation->get_Slide(0)->set_LayoutSlide(layoutSlide);

    presentation->Dispose();
}

💡 Note 1: มาสเตอร์สไลด์ให้วิธีการใช้แบรนด์หรือองค์ประกอบการออกแบบที่สอดคล้องกันทั่วทุกสไลด์. การเปลี่ยนแปลงใด ๆ ที่ทำกับมาสเตอร์จะถูกสะท้อนโดยอัตโนมัติบนเลย์เอาต์และสไลด์ปกติที่ขึ้นอยู่.
💡 Note 2: รูปร่างหรือการจัดรูปแบบใด ๆ ที่เพิ่มลงในมาสเตอร์สไลด์จะถูกสืบทอดโดยสไลด์เลย์เอาต์และต่อด้วยสไลด์ปกติทั้งหมดที่ใช้เลย์เอาต์นั้น.
ภาพด้านล่างแสดงให้เห็นว่ากล่องข้อความที่เพิ่มบนมาสเตอร์สไลด์จะถูกเรนเดอร์โดยอัตโนมัติบนสไลด์สุดท้าย.

ตัวอย่างการสืบทอดมาสเตอร์

เข้าถึงมาสเตอร์สไลด์

คุณสามารถเข้าถึงมาสเตอร์สไลด์โดยใช้คอลเลกชันมาสเตอร์ของงานนำเสนอ. นี่คือวิธีดึงและทำงานกับมัน:

static void AccessMasterSlide()
{
    auto presentation = MakeObject<Presentation>();

    auto firstMasterSlide = presentation->get_Master(0);

    // เปลี่ยนประเภทพื้นหลัง.
    firstMasterSlide->get_Background()->set_Type(BackgroundType::OwnBackground);

    presentation->Dispose();
}

ลบมาสเตอร์สไลด์

มาสเตอร์สไลด์สามารถลบได้โดยใช้ดัชนีหรือโดยอ้างอิง.

static void RemoveMasterSlide()
{
    auto presentation = MakeObject<Presentation>(u"sample.pptx");

    // ลบมาสเตอร์สไลด์โดยดัชนี.
    presentation->get_Masters()->RemoveAt(0);

    // ลบมาสเตอร์สไลด์โดยอ้างอิง.
    auto firstMasterSlide = presentation->get_Master(0);
    presentation->get_Masters()->Remove(firstMasterSlide);

    presentation->Dispose();
}

ลบมาสเตอร์สไลด์ที่ไม่ได้ใช้

งานนำเสนอบางส่วนมีมาสเตอร์สไลด์ที่ไม่ได้ใช้งาน. การลบสไลด์เหล่านี้สามารถช่วยลดขนาดไฟล์ได้.

static void RemoveUnusedMasterSlide()
{
    auto presentation = MakeObject<Presentation>();

    // ลบมาสเตอร์สไลด์ที่ไม่ได้ใช้ทั้งหมด (รวมถึงสไลด์ที่ถูกทำเครื่องหมายว่า Preserve).
    presentation->get_Masters()->RemoveUnused(true);

    presentation->Dispose();
}