Diaelrendezések alkalmazása vagy módosítása C++-ban

Bevezetés

A diaelrendezés meghatározza a helyőrződobozok elrendezését és a dián lévő tartalom formázását. Szabályozza, hogy mely helyőrzők állnak rendelkezésre, és hol jelennek meg. A diaelrendezések segítenek a bemutatók gyors és következetes megtervezésében – legyen szó egyszerű vagy összetettebb tartalomról. A PowerPoint leggyakoribb diaelrendezései a következők:

Címdia elrendezés – Két szöveges helyőrzőt tartalmaz: egyet a címhez és egyet az alcímhez.

Cím és tartalom elrendezés – Kisebb címhelyőrzőt tartalmaz a tetején, és alatta egy nagyobbat a fő tartalom számára (például szöveg, pontlista, diagramok, képek és egyéb elemek).

Üres elrendezés – Nem tartalmaz helyőrzőket, teljes irányítást biztosítva a dia teljesen újratervezéséhez.

A diaelrendezések a dia mester részei, amely a legfelső szintű dia, és meghatározza a prezentáció elrendezési stílusait. A dia mester segítségével elérheted és módosíthatod az elrendezési diát – típusa, neve vagy egyedi azonosítója alapján. Alternatív megoldásként közvetlenül a prezentációban szerkeszthetsz egy adott elrendezési diát.

A diaelrendezésekkel való munka Aspose.Slides for Android esetén a következőket használhatod:

Diaelrendezések hozzáadása a bemutatókhoz

A diák megjelenésének és felépítésének testreszabásához szükség lehet új elrendezési diák hozzáadására a bemutatóhoz. Az Aspose.Slides for Android lehetővé teszi, hogy ellenőrizd, létezik-e már egy adott elrendezés, szükség esetén újat adj hozzá, és azt használva diát szúrj be az adott elrendezés alapján.

  1. Hozz létre egy példányt a Presentation osztályból.
  2. Érd el a IMasterLayoutSlideCollection.
  3. Ellenőrizd, hogy a kívánt elrendezési dia már létezik-e a gyűjteményben. Ha nem, add hozzá a szükséges elrendezési diát.
  4. Adj hozzá egy üres diát az új elrendezési dia alapján.
  5. Mentsd el a bemutatót.

A következő C++ kód bemutatja, hogyan lehet diaelrendezést hozzáadni egy PowerPoint bemutatóhoz:

// Példányosítja a Presentation osztályt, amely egy PowerPoint fájlt képvisel.
auto presentation = MakeObject<Presentation>(u"Sample.pptx");

// Go through the layout slide types to select a layout slide.
auto layoutSlides = presentation->get_Master(0)->get_LayoutSlides();
SharedPtr<ILayoutSlide> layoutSlide;
if (layoutSlides->GetByType(SlideLayoutType::TitleAndObject) != nullptr)
{
    layoutSlide = layoutSlides->GetByType(SlideLayoutType::TitleAndObject);
}
else if (layoutSlides->GetByType(SlideLayoutType::Title) != nullptr)
{
    layoutSlide = layoutSlides->GetByType(SlideLayoutType::Title);
}

if (layoutSlide == nullptr)
{
    // Olyan helyzet, amikor a bemutató nem tartalmazza az összes elrendezéstípust.
    // A bemutatófájl csak Üres és Egyedi elrendezéstípusokat tartalmaz.
    // Azonban az egyedi típusú elrendezési diák felismerhető nevekkel is rendelkezhetnek,
    // például "Title", "Title and Content", stb., amelyeket felhasználhatunk elrendezési dia kiválasztásához.
    // Szintén támaszkodhatsz egy helyőrző alakzat típuskészletre.
    // Például egy Címdia csak a Cím helyőrzőtípust tartalmazza, és így tovább.
    for (int i = 0; i < layoutSlides->get_Count(); i++)
    {
        auto titleAndObjectLayoutSlide = layoutSlides->idx_get(i);

        if (titleAndObjectLayoutSlide->get_Name().Equals(u"Title and Object"))
        {
            layoutSlide = titleAndObjectLayoutSlide;
            break;
        }
    }

    if (layoutSlide == nullptr)
    {
        for (int i = 0; i < layoutSlides->get_Count(); i++)
        {
            auto titleLayoutSlide = layoutSlides->idx_get(i);

            if (titleLayoutSlide->get_Name() == u"Title")
            {
                layoutSlide = titleLayoutSlide;
                break;
            }
        }

        if (layoutSlide == nullptr)
        {
            layoutSlide = layoutSlides->GetByType(SlideLayoutType::Blank);
            if (layoutSlide == nullptr)
            {
                layoutSlide = layoutSlides->Add(SlideLayoutType::TitleAndObject, u"Title and Object");
            }
        }
    }
}

// Add an empty slide using the added layout slide.
presentation->get_Slides()->InsertEmptySlide(0, layoutSlide);

// Save the presentation to disk.
presentation->Save(u"Output.pptx", SaveFormat::Pptx);
presentation->Dispose();

Használaton kívüli elrendezési diák eltávolítása

Az Aspose.Slides a Compress osztály RemoveUnusedLayoutSlides metódusát biztosítja, hogy eltávolíthasd a nem kívánt és használaton kívüli elrendezési diát.

A következő C++ kód megmutatja, hogyan lehet elrendezési diát eltávolítani egy PowerPoint bemutatóból:

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

Compress::RemoveUnusedLayoutSlides(presentation);

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

Helyőrzők hozzáadása a diaelrendezésekhez

Az Aspose.Slides biztosítja az ILayoutSlide.get_PlaceholderManager metódust, amely lehetővé teszi új helyőrzők hozzáadását egy elrendezési diához.

Ez a menedzser a következő helyőrző típusokhoz tartalmaz metódusokat:

PowerPoint helyőrző ILayoutPlaceholderManager Metódus
Tartalom AddContentPlaceholder(float x, float y, float width, float height)
Tartalom (Függőleges) AddVerticalContentPlaceholder(float x, float y, float width, float height)
Szöveg AddTextPlaceholder(float x, float y, float width, float height)
Szöveg (Függőleges) AddVerticalTextPlaceholder(float x, float y, float width, float height)
Kép AddPicturePlaceholder(float x, float y, float width, float height)
Diagram AddChartPlaceholder(float x, float y, float width, float height)
Táblázat AddTablePlaceholder(float x, float y, float width, float height)
SmartArt AddSmartArtPlaceholder(float x, float y, float width, float height)
Média AddMediaPlaceholder(float x, float y, float width, float height)
Online kép AddOnlineImagePlaceholder(float x, float y, float width, float height)

A következő C++ kód bemutatja, hogyan lehet új helyőrző alakzatokat hozzáadni az Üres elrendezés diához:

auto presentation = MakeObject<Presentation>();

// Szerezze be az Üres elrendezési diát.
auto layout = presentation->get_LayoutSlides()->GetByType(SlideLayoutType::Blank);

// Szerezze be a helyőrzőkezelőt az elrendezési diáról.
auto placeholderManager = layout->get_PlaceholderManager();

// Különböző helyőrzők hozzáadása az Üres elrendezési diához.
placeholderManager->AddContentPlaceholder(20, 20, 310, 270);
placeholderManager->AddVerticalTextPlaceholder(350, 20, 350, 270);
placeholderManager->AddChartPlaceholder(20, 310, 310, 180);
placeholderManager->AddTablePlaceholder(350, 310, 350, 180);

// Add a new slide with the Blank layout.
auto newSlide = presentation->get_Slides()->AddEmptySlide(layout);

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

Az eredmény:

A helyőrzők az elrendezési dián

Lábléc láthatóság beállítása egy elrendezési dián

A PowerPoint bemutatókban a láblécelemek, például a dátum, a dia száma és az egyéni szöveg megjeleníthetők vagy elrejthetők a diaelrendezéstől függően. Az Aspose.Slides for Android lehetővé teszi ezen lábléc helyőrzők láthatóságának szabályozását. Ez akkor hasznos, amikor bizonyos elrendezéseknél szeretnél láblécinformációt megjeleníteni, míg mások tiszták és minimalista megjelenést kapnak.

  1. Hozz létre egy példányt a Presentation osztályból.
  2. Szerezz egy elrendezési dia referenciát az indexe alapján.
  3. Állítsd a dia lábléc helyőrzőt láthatóvá.
  4. Állítsd a dia szám helyőrzőt láthatóvá.
  5. Állítsd a dátum-idő helyőrzőt láthatóvá.
  6. Mentsd el a bemutatót.

A következő C++ kód megmutatja, hogyan kell beállítani egy dia láblécének láthatóságát és a kapcsolódó feladatokat végrehajtani:

auto presentation = MakeObject<Presentation>(u"Presentation.ppt");
auto headerFooterManager = presentation->get_LayoutSlides()->idx_get(0)->get_HeaderFooterManager();

if (!headerFooterManager->get_IsFooterVisible())
{
    headerFooterManager->SetFooterVisibility(true);
}

if (!headerFooterManager->get_IsSlideNumberVisible())
{
    headerFooterManager->SetSlideNumberVisibility(true);
}

if (!headerFooterManager->get_IsDateTimeVisible())
{
    headerFooterManager->SetDateTimeVisibility(true);
}

headerFooterManager->SetFooterText(u"Footer text");
headerFooterManager->SetDateTimeText(u"Date and time text");

presentation->Save(u"Presentation.ppt", SaveFormat::Pptx);
presentation->Dispose();

Gyermek lábléc láthatóság beállítása egy dián

A PowerPoint bemutatókban a láblécelemek, például a dátum, a dia száma és az egyéni szöveg a mesterdia szintjén szabályozhatók, hogy konzisztenciát biztosítsanak az összes elrendezési dián. Az Aspose.Slides for Android lehetővé teszi ezen lábléc helyőrzők láthatóságának és tartalmának beállítását a mesterdián, és ezeknek a beállításoknak a terjesztését az összes gyermek elrendezési diára. Ez a megközelítés egységes láblécinformációt biztosít a teljes bemutatóban.

  1. Hozz létre egy példányt a Presentation osztályból.
  2. Szerezz egy referencia a mesterdiára az indexe alapján.
  3. Állítsd a mester és az összes gyermek lábléc helyőrzőjét láthatóvá.
  4. Állítsd a mester és az összes gyermek dia szám helyőrzőjét láthatóvá.
  5. Állítsd a mester és az összes gyermek dátum-idő helyőrzőjét láthatóvá.
  6. Mentsd el a bemutatót.

A következő C++ kód bemutatja ezt a műveletet:

auto presentation = MakeObject<Presentation>();

auto headerFooterManager = presentation->get_Master(0)->get_HeaderFooterManager();

headerFooterManager->SetFooterAndChildFootersVisibility(true);
headerFooterManager->SetSlideNumberAndChildSlideNumbersVisibility(true);
headerFooterManager->SetDateTimeAndChildDateTimesVisibility(true);

headerFooterManager->SetFooterAndChildFootersText(u"Footer text");
headerFooterManager->SetDateTimeAndChildDateTimesText(u"Date and time text");

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

FAQ

Mi a különbség a mesterdia és az elrendezési dia között?

A mesterdia határozza meg az általános témát és az alapértelmezett formázást, míg az elrendezési diák konkrét helyőrző elrendezéseket definiálnak különböző tartalomtípusok számára.

Másolhatok elrendezési diát az egyik bemutatóból a másikba?

Igen, egy elrendezési diát klónozhatsz egy bemutató elrendezési dia gyűjteményéből, amely a get_LayoutSlides metódussal érhető el, és egy másik bemutatóba az AddClone metódus segítségével illesztheted be.

Mi történik, ha törlök egy elrendezési diát, amelyet még egy dia használ?

Ha megpróbálsz törölni egy elrendezési diát, amelyet a bemutató legalább egy diája még hivatkozik, az Aspose.Slides PptxEditException kivételt dob. Ennek elkerülése érdekében használd a RemoveUnusedLayoutSlides metódust, amely biztonságosan csak a nem használt elrendezési diákat távolítja el.