Zastosuj lub zmień układy slajdów w PHP
Wprowadzenie
Układ slajdu definiuje rozmieszczenie pól zastępczych i formatowanie treści na slajdzie. Kontroluje, które pola zastępcze są dostępne i gdzie się pojawiają. Układy slajdów pomagają szybko i konsekwentnie projektować prezentacje — niezależnie od tego, czy tworzysz coś prostego, czy bardziej złożonego. Do najczęściej używanych układów slajdów w programie PowerPoint należą:
Układ slajdu tytułowego – Zawiera dwa pola tekstowe: jedno dla tytułu i jedno dla podtytułu.
Układ tytuł i treść – Zawiera mniejsze pole tytułu u góry oraz większe poniżej, przeznaczone na główną treść (taką jak tekst, wypunktowania, wykresy, obrazy i inne).
Układ pusty – Nie zawiera pól zastępczych, dając pełną kontrolę nad projektowaniem slajdu od podstaw.
Układy slajdów są częścią mastera slajdów, który jest slajdem najwyższego poziomu definiującym style układów dla prezentacji. Możesz uzyskać dostęp i modyfikować układy slajdów za pośrednictwem mastera slajdów — zarówno według typu, nazwy, jak i unikalnego identyfikatora. Alternatywnie możesz edytować konkretny układ slajdu bezpośrednio w prezentacji.
Aby pracować z układami slajdów w Aspose.Slides for PHP, możesz używać:
- Metody takie jak getLayoutSlides i getMasters w klasie Presentation
- Typy takie jak LayoutSlide, MasterLayoutSlideCollection, LayoutPlaceholderManager, oraz LayoutSlideHeaderFooterManager
Info
Aby dowiedzieć się więcej o pracy z masterami slajdów, zapoznaj się z artykułem Slide Master.Dodawanie układów slajdów do prezentacji
Aby dostosować wygląd i strukturę swoich slajdów, możesz potrzebować dodać nowe układy slajdów do prezentacji. Aspose.Slides for PHP umożliwia sprawdzenie, czy dany układ już istnieje, dodanie nowego w razie potrzeby oraz użycie go do wstawiania slajdów opartych na tym układzie.
- Utwórz instancję klasy Presentation.
- Uzyskaj dostęp do MasterLayoutSlideCollection.
- Sprawdź, czy żądany układ slajdu już istnieje w kolekcji. Jeśli nie, dodaj potrzebny układ slajdu.
- Dodaj pusty slajd oparty na nowym układzie slajdu.
- Zapisz prezentację.
Poniższy kod PHP pokazuje, jak dodać układ slajdu do prezentacji PowerPoint:
// Utwórz instancję klasy Presentation reprezentującej plik PowerPoint.
$presentation = new Presentation("Sample.pptx");
try {
// Przejdź przez typy układów slajdów, aby wybrać układ slajdu.
$layoutSlides = $presentation->getMasters()->get_Item(0)->getLayoutSlides();
$layoutSlide = null;
if (!java_is_null($layoutSlides->getByType(SlideLayoutType::TitleAndObject))) {
$layoutSlide = $layoutSlides->getByType(SlideLayoutType::TitleAndObject);
} else {
$layoutSlide = $layoutSlides->getByType(SlideLayoutType::Title);
}
if (java_is_null($layoutSlide)) {
// Sytuacja, w której prezentacja nie zawiera wszystkich typów układów.
// Plik prezentacji zawiera tylko typy układów Blank i Custom.
// Jednak układy slajdów z typami niestandardowymi mogą mieć rozpoznawalne nazwy,
// takie jak "Title", "Title and Content", itp., które można wykorzystać do wyboru układu slajdu.
// Można również opierać się na zestawie typów kształtów pól zastępczych.
// Na przykład slajd tytułowy powinien mieć tylko typ pola zastępczego Title, i tak dalej.
foreach($layoutSlides as $titleAndObjectLayoutSlide) {
if (java_values($titleAndObjectLayoutSlide->getName()) == "Title and Object") {
$layoutSlide = $titleAndObjectLayoutSlide;
break;
}
}
if (java_is_null($layoutSlide)) {
foreach($layoutSlides as $titleLayoutSlide) {
if (java_values($titleLayoutSlide->getName()) == "Title") {
$layoutSlide = $titleLayoutSlide;
break;
}
}
if (java_is_null($layoutSlide)) {
$layoutSlide = $layoutSlides->getByType(SlideLayoutType::Blank);
if (java_is_null($layoutSlide)) {
$layoutSlide = $layoutSlides->add(SlideLayoutType::TitleAndObject, "Title and Object");
}
}
}
}
// Dodaj pusty slajd używając dodanego układu slajdu.
$presentation->getSlides()->insertEmptySlide(0, $layoutSlide);
// Zapisz prezentację na dysku.
$presentation->save("output.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Usuwanie nieużywanych układów slajdów
Aspose.Slides udostępnia metodę removeUnusedLayoutSlides z klasy Compress, pozwalającą usunąć niechciane i nieużywane układy slajdów.
Poniższy kod PHP pokazuje, jak usunąć układ slajdu z prezentacji PowerPoint:
$presentation = new Presentation("Presentation.pptx");
try {
Compress::removeUnusedLayoutSlides($presentation);
$presentation->save("Output.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Dodawanie pól zastępczych do układów slajdów
Aspose.Slides udostępnia metodę LayoutSlide.getPlaceholderManager, która umożliwia dodawanie nowych pól zastępczych do układu slajdu.
Menedżer ten zawiera metody dla następujących typów pól zastępczych:
| Pole zastępcze PowerPoint | LayoutPlaceholderManager Method |
|---|---|
![]() |
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) |
![]() |
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) |
Poniższy kod PHP demonstruje, jak dodać nowe kształty pól zastępczych do układu pustego slajdu:
$presentation = new Presentation();
try {
// Pobierz układ slajdu Blank.
$layout = $presentation->getLayoutSlides()->getByType(SlideLayoutType::Blank);
// Pobierz menedżera pól zastępczych układu slajdu.
$placeholderManager = $layout->getPlaceholderManager();
// Dodaj różne pola zastępcze do układu slajdu Blank.
$placeholderManager->addContentPlaceholder(20, 20, 310, 270);
$placeholderManager->addVerticalTextPlaceholder(350, 20, 350, 270);
$placeholderManager->addChartPlaceholder(20, 310, 310, 180);
$placeholderManager->addTablePlaceholder(350, 310, 350, 180);
// Dodaj nowy slajd z układem Blank.
$newSlide = $presentation->getSlides()->addEmptySlide($layout);
$presentation->save("Placeholders.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Wynik:

Ustawianie widoczności stopki dla układu slajdu
W prezentacjach PowerPoint elementy stopki, takie jak data, numer slajdu i własny tekst, mogą być wyświetlane lub ukrywane w zależności od układu slajdu. Aspose.Slides for PHP umożliwia kontrolowanie widoczności tych pól zastępczych stopki. Jest to przydatne, gdy chcesz, aby niektóre układy wyświetlały informacje stopki, a inne pozostawały czyste i minimalistyczne.
- Utwórz instancję klasy Presentation.
- Pobierz odniesienie do układu slajdu za pomocą jego indeksu.
- Ustaw pole zastępcze stopki slajdu jako widoczne.
- Ustaw pole zastępcze numeru slajdu jako widoczne.
- Ustaw pole zastępcze daty i czasu jako widoczne.
- Zapisz prezentację.
Poniższy kod PHP pokazuje, jak ustawić widoczność stopki slajdu i wykonać powiązane zadania:
$presentation = new Presentation("Presentation.ppt");
try {
$headerFooterManager = $presentation->getLayoutSlides()->get_Item(0)->getHeaderFooterManager();
if (!$headerFooterManager->isFooterVisible()) {
$headerFooterManager->setFooterVisibility(true);
}
if (!$headerFooterManager->isSlideNumberVisible()) {
$headerFooterManager->setSlideNumberVisibility(true);
}
if (!$headerFooterManager->isDateTimeVisible()) {
$headerFooterManager->setDateTimeVisibility(true);
}
$headerFooterManager->setFooterText("Footer text");
$headerFooterManager->setDateTimeText("Date and time text");
$presentation->save("Presentation.ppt", SaveFormat::Ppt);
} finally {
$presentation->dispose();
}
Ustawianie widoczności stopki potomka dla slajdu
W prezentacjach PowerPoint elementy stopki, takie jak data, numer slajdu i własny tekst, mogą być kontrolowane na poziomie mastera slajdów, aby zapewnić spójność we wszystkich układach slajdów. Aspose.Slides for PHP umożliwia ustawienie widoczności i zawartości tych pól zastępczych stopki na masterze oraz propagowanie tych ustawień do wszystkich potomnych układów slajdów. Takie podejście zapewnia jednolitą informację stopki w całej prezentacji.
- Utwórz instancję klasy Presentation.
- Pobierz odniesienie do mastera slajdu za pomocą jego indeksu.
- Ustaw pola zastępcze stopki mastera i wszystkich potomnych jako widoczne.
- Ustaw pola zastępcze numeru slajdu mastera i wszystkich potomnych jako widoczne.
- Ustaw pola zastępcze daty i czasu mastera i wszystkich potomnych jako widoczne.
- Zapisz prezentację.
Poniższy kod PHP demonstruje tę operację:
$presentation = new Presentation("presentation.ppt");
try {
$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.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
FAQ
Jaka jest różnica między masterem slajdu a układem slajdu?
Master slajdu definiuje ogólny motyw i domyślne formatowanie, natomiast układy slajdów określają konkretne rozmieszczenie pól zastępczych dla różnych typów treści.
Czy mogę skopiować układ slajdu z jednej prezentacji do drugiej?
Tak, możesz sklonować układ slajdu z kolekcji układów slajdów jednej prezentacji, dostępnej przez metodę getLayoutSlides, i wstawić go do innej prezentacji za pomocą metody addClone.
Co się stanie, jeśli usunę układ slajdu, który jest nadal używany przez slajd?
Jeśli spróbujesz usunąć układ slajdu, który jest nadal odwoływany przynajmniej przez jeden slajd w prezentacji, Aspose.Slides zgłosi wyjątek PptxEditException. Aby tego uniknąć, użyj removeUnusedLayoutSlides, który bezpiecznie usuwa tylko nieużywane układy slajdów.









