Použití nebo změna rozložení snímků na Androidu

Přehled

Rozložení snímku určuje polohu a formátování zástupných objektů, jako jsou nadpisy, text, obrázky, grafy a tabulky. Použití rozložení poskytuje snímkům jednotnou strukturu a zároveň umožňuje, aby každý snímek obsahoval svůj vlastní obsah.

Nejčastější rozložení zahrnují:

  • Title Slide: Obsahuje zástupné objekty nadpisu a podnadpisu.
  • Title and Content: Obsahuje zástupný objekt nadpisu a obecný obsahový zástupný objekt.
  • Blank: Neobsahuje žádné zástupné objekty a hodí se, když budou všechny tvary umístěny ručně.

Pochopte dědičnost rozvržení

Prezentace má tři související úrovně:

  1. hlavní snímek definuje motiv, sdílené formátování, pozadí a společné objekty.
  2. rozvržení snímku patří k hlavnímu snímku a určuje konkrétní uspořádání zástupných objektů.
  3. normální snímek používá jedno rozvržení a ukládá obsah zadaný pro daný snímek.

Normální snímek dědí motiv a formátování ze svého rozvržení a rozvržení dědí z hlavního snímku. Hodnota nastavená přímo na normálním snímku přepíše zděděnou hodnotu na této úrovni. Když je normální snímek vytvořen, jeho tvary zástupných objektů jsou vygenerovány z vybraného rozvržení, přičemž obsah zadaný do těchto zástupných objektů patří k normálnímu snímku.

Přidejte požadované zástupné objekty do rozvržení před tím, než z něj budete vytvářet snímky. Přidání dalšího zástupného objektu do rozvržení později automaticky nepřidá odpovídající tvar zástupného objektu do existujících normálních snímků.

Tento vztah má dva důležité důsledky:

  • Změna zděděného formátování nebo existující geometrie zástupných objektů v rozvržení může aktualizovat každý snímek, který na něm závisí. Před úpravou rozvržení, které již je používáno, zkontrolujte jeho závislé snímky a přezkoumejte výslednou prezentaci.
  • Rozvržení, které je stále používáno nějakým snímkem, nelze odstranit. Předtím přeřiďte jeho závislé snímky na jiné rozvržení nebo odstraňte jen nepoužívaná rozvržení.

Další informace o nejvyšší úrovni této hierarchie najdete v Slide Master.

Pro skrytí zděděných log a dekorativních tvarů hlavního snímku na jednom snímku nebo skrze sdílené rozvržení si přečtěte Control the Visibility of Master Graphics. Příklad srovnává dva snímky používající stejný hlavní snímek.

Vyberte a použijte rozvržení snímku

Použijte typ rozvržení, když prezentace následuje standardní definice rozvržení PowerPointu. Názvy rozvržení jsou editovatelné uživatelem a mohou být lokalizovány, takže výběr založený na názvu je méně spolehlivý, pokud neovládáte zdrojovou šablonu.

Následující ukázka hledá Title and Content na prvním hlavním snímku. Pokud toto rozvržení není k dispozici, úmyslně přejde na Blank. Druhá kontrola na null je nutná, protože prezentace může obsahovat jen vlastní rozvržení. Vybrané rozvržení je poté použito na prvním normálním snímku pomocí metody ISlide.setLayoutSlide .

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    IMasterLayoutSlideCollection layoutSlides = presentation.getMasters().get_Item(0).getLayoutSlides();
    ILayoutSlide targetLayout = layoutSlides.getByType(SlideLayoutType.TitleAndObject);

    if (targetLayout == null) {
        targetLayout = layoutSlides.getByType(SlideLayoutType.Blank);
    }

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

    presentation.getSlides().get_Item(0).setLayoutSlide(targetLayout);
    presentation.save("output-with-new-layout.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Změna rozvržení snímku neodstraní běžné tvary přidané přímo na snímek. Nicméně pozice zástupných objektů, zděděné formátování a shoda mezi existujícími zástupnými objekty a novým rozvržením se může změnit, proto při přepínání mezi podstatně odlišnými rozvrženími zkontrolujte výstup.

Přidejte rozvržení snímku

Výběr a vytvoření jsou oddělené operace. Předchozí ukázka vybere existující rozvržení; nevytváří ho. Pro vytvoření rozvržení zavolejte metodu IMasterLayoutSlideCollection.add na kolekci rozvržení cílového hlavního snímku.

Následující příklad vždy přidá nové rozvržení Title and Content s názvem Report Title and Content a poté přidá normální snímek založený na něm. Názvy rozvržení musí být v rámci kolekce jedinečné.

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    IMasterSlide masterSlide = presentation.getMasters().get_Item(0);
    ILayoutSlide reportLayout = masterSlide.getLayoutSlides().add(SlideLayoutType.TitleAndObject, "Report Title and Content");
    presentation.getSlides().addEmptySlide(reportLayout);

    presentation.save("output-with-report-layout.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Přidejte rozvržení pouze tehdy, když šablona skutečně potřebuje další znovupoužitelnou strukturu. Pokud již existuje vhodné rozvržení, vyberte a znovu ho použijte místo vytváření duplikátu.

Přidejte zástupné objekty do rozvržení snímku

Metoda ILayoutSlide.getPlaceholderManager poskytuje ILayoutPlaceholderManager pro přidávání tvarů zástupných objektů do rozvržení.

Placeholder PowerPointu ILayoutPlaceholderManager metoda
Obsah addContentPlaceholder(float x, float y, float width, float height)
Obsah (Vertikální) addVerticalContentPlaceholder(float x, float y, float width, float height)
Text addTextPlaceholder(float x, float y, float width, float height)
Text (Vertikální) addVerticalTextPlaceholder(float x, float y, float width, float height)
Obrázek addPicturePlaceholder(float x, float y, float width, float height)
Graf addChartPlaceholder(float x, float y, float width, float height)
Tabulka 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 obrázek addOnlineImagePlaceholder(float x, float y, float width, float height)

Následující ukázka ověřuje, že rozvržení Blank existuje, přidá k němu čtyři zástupné objekty a poté vytvoří normální snímek, který používá upravené rozvržení. Pořadí je úmyslné: zástupné objekty jsou přidány před vytvořením normálního snímku, takže Aspose.Slides může vygenerovat odpovídající tvary zástupných objektů na tomto snímku.

import com.aspose.slides.*;

Presentation presentation = new Presentation();
try {
    ILayoutSlide blankLayout = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);

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

    ILayoutPlaceholderManager placeholderManager = blankLayout.getPlaceholderManager();
    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.getSlides().addEmptySlide(blankLayout);
    presentation.save("output-with-placeholders.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Výsledek:

Zástupné objekty na rozvržení snímku

Odstraňte nepoužívaná rozvržení snímků

Použijte metodu Compress.removeUnusedLayoutSlides k odebrání rozvržení, na která neodkazuje žádný normální snímek. Metoda ponechá rozvržení, která jsou stále používána, nedotčena.

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    Compress.removeUnusedLayoutSlides(presentation);
    presentation.save("output-without-unused-layouts.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Pro odebrání konkrétního rozvržení nejprve použijte jeho metodu hasDependingSlides nebo getDependingSlides. Před voláním ILayoutSlide.remove přesuňte všechny závislé snímky. Pokus o odebrání rozvržení, které je používáno, vyvolá výjimku PptxEditException.

Řízení viditelnosti zápatí na rozvržení snímku

Rozvržení má vlastní zástupné objekty zápatí, čísla snímku a data/času. Použijte metodu ILayoutSlide.getHeaderFooterManager k řízení těchto zástupných objektů pro konkrétní rozvržení. To je užitečné například, když obsahová rozvržení mají zobrazovat zápatí, ale rozvržení nadpisu ne.

Následující ukázka bezpečně vybere rozvržení a zpřístupní jeho elementy zápatí:

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    ILayoutSlide layoutSlide = presentation.getLayoutSlides().getByType(SlideLayoutType.TitleAndObject);

    if (layoutSlide == null) {
        layoutSlide = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);
    }

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

    ILayoutSlideHeaderFooterManager headerFooterManager = layoutSlide.getHeaderFooterManager();
    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);
} finally {
    presentation.dispose();
}

Řízení viditelnosti zápatí na hlavním snímku a jeho podřízených rozvrženích

Pro aplikaci jednotných nastavení zápatí napříč hierarchií hlavního snímku použijte metodu IMasterSlide.getHeaderFooterManager. Propagační metody IMasterSlideHeaderFooterManager působí na hlavní snímek, jeho závislé rozvržení snímků i normální snímky; neovlivňují jen jeden normální snímek.

import com.aspose.slides.*;

Presentation presentation = new Presentation("input.pptx");
try {
    IMasterSlideHeaderFooterManager headerFooterManager = presentation.getMasters().get_Item(0).getHeaderFooterManager();
    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);
} finally {
    presentation.dispose();
}

Často kladené otázky

Jaký je rozdíl mezi hlavním snímkem a rozvržením snímku?

Hlavní snímek definuje motiv prezentace a sdílené formátování. Rozvržení snímku patří k hlavnímu snímku a určuje jednorázové opakovatelné uspořádání zástupných objektů. Normální snímky používají tato rozvržení a ukládají obsah specifický pro konkrétní snímek.

Mohu zkopírovat rozvržení snímku z jedné prezentace do druhé?

Ano. Přidejte kopii do cílové kolekce metodou addClone. Při kopírování mezi prezentacemi také ověřte písma, motivy, obrázky a další zdroje používané zdrojovým rozvržením.

Co se stane, když upravím rozvržení, které je již používáno?

Závislé snímky zdědí změny rozvržení, pokud místně nepřepíší dotčené formátování nebo objekty. Geometrie zástupných objektů a zděděné styly se mohou tedy změnit na mnoha snímcích najednou. Použijte getDependingSlides k identifikaci ovlivněných snímků před úpravou rozvržení.

Co se stane, když odstraním rozvržení, které je stále používáno?

Aspose.Slides vyvolá výjimku PptxEditException. Nejprve přesuňte závislé snímky, nebo použijte removeUnusedLayoutSlides k odebrání pouze neodkazovaných rozvržení.