Zarządzanie tłami prezentacji w PHP
Wprowadzenie
Jednolite kolory, gradienty i obrazy są powszechnie używane jako tła slajdów. Możesz ustawić tło dla normalnego slajdu (pojedynczy slajd) lub slajdu master (dotyczy wielu slajdów jednocześnie).

Ustaw jednolity kolor tła dla normalnego slajdu
Aspose.Slides umożliwia ustawienie jednolitego koloru jako tła dla konkretnego slajdu w prezentacji — nawet jeśli prezentacja używa slajdu master. Zmiana dotyczy tylko wybranego slajdu.
- Utwórz instancję klasy Presentation.
- Ustaw [BackgroundType] slajdu na
OwnBackground. - Ustaw tło slajdu [FillType] na
Solid. - Użyj metody getSolidFillColor na FillFormat, aby określić jednolity kolor tła.
- Zapisz zmodyfikowaną prezentację.
Poniższy przykład PHP pokazuje, jak ustawić niebieski jednolity kolor jako tło dla normalnego slajdu:
// Utwórz instancję klasy Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// Ustaw kolor tła slajdu na niebieski.
$slide->getBackground()->setType(BackgroundType::OwnBackground);
$slide->getBackground()->getFillFormat()->setFillType(FillType::Solid);
$slide->getBackground()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
// Zapisz prezentację na dysk.
$presentation->save("SolidColorBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Ustaw jednolity kolor tła dla slajdu master
Aspose.Slides umożliwia ustawienie jednolitego koloru jako tła dla slajdu master w prezentacji. Slajd master działa jako szablon, który kontroluje formatowanie wszystkich slajdów, więc gdy wybierzesz jednolity kolor tła slajdu master, zostanie on zastosowany do każdego slajdu.
- Utwórz instancję klasy Presentation.
- Ustaw [BackgroundType] slajdu master (poprzez
getMasters) naOwnBackground. - Ustaw tło slajdu master [FillType] na
Solid. - Użyj metody getSolidFillColor, aby określić jednolity kolor tła.
- Zapisz zmodyfikowaną prezentację.
Poniższy przykład PHP pokazuje, jak ustawić jednolity kolor (zielony) jako tło dla slajdu master:
// Utwórz instancję klasy Presentation.
$presentation = new Presentation();
try {
$masterSlide = $presentation->getMasters()->get_Item(0);
// Ustaw kolor tła slajdu Master na zielony leśny.
$masterSlide->getBackground()->setType(BackgroundType::OwnBackground);
$masterSlide->getBackground()->getFillFormat()->setFillType(FillType::Solid);
$masterSlide->getBackground()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
// Zapisz prezentację na dysk.
$presentation->save("MasterSlideBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Ustaw gradientowe tło dla slajdu
Gradient to efekt graficzny powstający w wyniku stopniowej zmiany koloru. Używany jako tło slajdu, gradient może sprawić, że prezentacje będą wyglądały bardziej artystycznie i profesjonalnie. Aspose.Slides umożliwia ustawienie gradientowego koloru jako tła dla slajdów.
- Utwórz instancję klasy Presentation.
- Ustaw [BackgroundType] slajdu na
OwnBackground. - Ustaw tło slajdu [FillType] na
Gradient. - Użyj metody getGradientFormat na FillFormat, aby skonfigurować preferowane ustawienia gradientu.
- Zapisz zmodyfikowaną prezentację.
Poniższy przykład PHP pokazuje, jak ustawić gradientowy kolor jako tło dla slajdu:
// Utwórz instancję klasy Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// Zastosuj efekt gradientu do tła.
$slide->getBackground()->setType(BackgroundType::OwnBackground);
$slide->getBackground()->getFillFormat()->setFillType(FillType::Gradient);
$slide->getBackground()->getFillFormat()->getGradientFormat()->setTileFlip(TileFlip::FlipBoth);
// Zapisz prezentację na dysk.
$presentation->save("GradientBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Ustaw obraz jako tło slajdu
Oprócz jednolitych i gradientowych wypełnień, Aspose.Slides umożliwia użycie obrazów jako tła slajdów.
- Utwórz instancję klasy Presentation.
- Ustaw [BackgroundType] slajdu na
OwnBackground. - Ustaw tło slajdu [FillType] na
Picture. - Wczytaj obraz, który chcesz użyć jako tło slajdu.
- Dodaj obraz do kolekcji obrazów w prezentacji.
- Użyj metody getPictureFillFormat na FillFormat, aby przypisać obraz jako tło.
- Zapisz zmodyfikowaną prezentację.
Poniższy przykład PHP pokazuje, jak ustawić obraz jako tło dla slajdu:
// Utwórz instancję klasy Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// Ustaw właściwości obrazu tła.
$slide->getBackground()->setType(BackgroundType::OwnBackground);
$slide->getBackground()->getFillFormat()->setFillType(FillType::Picture);
$slide->getBackground()->getFillFormat()->getPictureFillFormat()->setPictureFillMode(PictureFillMode::Stretch);
// Wczytaj obraz.
$image = Images::fromFile("Tulips.jpg");
// Dodaj obraz do kolekcji obrazów prezentacji.
$ppImage = $presentation->getImages()->addImage($image);
$image->dispose();
$slide->getBackground()->getFillFormat()->getPictureFillFormat()->getPicture()->setImage($ppImage);
// Zapisz prezentację na dysk.
$presentation->save("ImageAsBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Poniższy fragment kodu pokazuje, jak ustawić typ wypełnienia tła na kafelkowy obraz i zmodyfikować właściwości kafelkowania:
$presentation = new Presentation();
try {
$firstSlide = $presentation->getSlides()->get_Item(0);
$background = $firstSlide->getBackground();
$background->setType(BackgroundType::OwnBackground);
$background->getFillFormat()->setFillType(FillType::Picture);
$newImage = Images::fromFile("image.png");
$ppImage = $presentation->getImages()->addImage($newImage);
$newImage->dispose();
// Ustaw obraz używany do wypełnienia tła.
$backPictureFillFormat = $background->getFillFormat()->getPictureFillFormat();
$backPictureFillFormat->getPicture()->setImage($ppImage);
// Ustaw tryb wypełnienia obrazu na Kafelkowanie i dostosuj właściwości kafelków.
$backPictureFillFormat->setPictureFillMode(PictureFillMode::Tile);
$backPictureFillFormat->setTileOffsetX(15);
$backPictureFillFormat->setTileOffsetY(15);
$backPictureFillFormat->setTileScaleX(46);
$backPictureFillFormat->setTileScaleY(87);
$backPictureFillFormat->setTileAlignment(RectangleAlignment::Center);
$backPictureFillFormat->setTileFlip(TileFlip::FlipY);
$presentation->save("TileBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Zmień przezroczystość obrazu tła
Możesz chcieć dostosować przezroczystość obrazu tła slajdu, aby wyróżnić zawartość slajdu. Poniższy kod PHP pokazuje, jak zmienić przezroczystość obrazu tła slajdu:
$transparencyValue = 30; // Na przykład.
$imageTransform = $slide->getBackground()->getFillFormat()->getPictureFillFormat()->getPicture()->getImageTransform();
// Znajdź istniejący efekt przezroczystości o stałym procencie.
$transparencyOperation = null;
foreach($imageTransform as $operation) {
if (java_instanceof($operation, new JavaClass("com.aspose.slides.AlphaModulateFixed"))) {
$transparencyOperation = $operation;
break;
}
}
// Ustaw nową wartość przezroczystości.
if (java_is_null($transparencyOperation)) {
$imageTransform->addAlphaModulateFixedEffect(100 - $transparencyValue);
} else {
$transparencyOperation->setAmount(100 - $transparencyValue);
}
Uzyskaj wartość tła slajdu
Aspose.Slides udostępnia klasę BackgroundEffectiveData do pobierania efektywnych wartości tła slajdu. Klasa ta eksponuje efektywne FillFormat oraz EffectFormat.
Korzystając z metody getBackground klasy BaseSlide, możesz uzyskać efektywne tło dla slajdu.
Poniższy przykład PHP pokazuje, jak uzyskać efektywną wartość tła slajdu:
// Utwórz instancję klasy Presentation.
$presentation = new Presentation("Sample.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
// Pobierz efektywne tło, uwzględniając master, układ i temat.
$effBackground = $slide->getBackground()->getEffective();
if ($effBackground->getFillFormat()->getFillType() == FillType::Solid)
echo "Fill color: " . $effBackground->getFillFormat()->getSolidFillColor() . "\n";
else
echo "Fill type: " . $effBackground->getFillFormat()->getFillType() . "\n";
} finally {
$presentation->dispose();
}
FAQ
Czy mogę zresetować niestandardowe tło i przywrócić tło motywu/układu?
Tak. Usuń niestandardowe wypełnienie slajdu, a tło zostanie ponownie odziedziczone z odpowiedniego layout/master (czyli z theme background).
Co się stanie z tłem, jeśli później zmienię motyw prezentacji?
Jeśli slajd ma własne wypełnienie, pozostanie ono niezmienione. Jeśli tło jest dziedziczone z layout/master, zostanie zaktualizowane zgodnie z nowym motywem.