Gerenciar fundos de apresentação em PHP
Introdução
Cores sólidas, gradientes e imagens são comumente usados como fundos de slides. Você pode definir o fundo para um slide normal (um único slide) ou um slide mestre (aplicado a vários slides ao mesmo tempo).

Definir um Fundo de Cor Sólida para um Slide Normal
Aspose.Slides permite definir uma cor sólida como fundo para um slide específico em uma apresentação — mesmo que a apresentação use um slide mestre. A alteração se aplica somente ao slide selecionado.
- Crie uma instância da Presentation class.
- Defina o BackgroundType do slide como
OwnBackground. - Defina o FillType do fundo do slide como
Solid. - Use o método getSolidFillColor em FillFormat para especificar a cor de fundo sólida.
- Salve a apresentação modificada.
O exemplo PHP a seguir mostra como definir uma cor sólida azul como fundo para um slide normal:
// Crie uma instância da classe Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// Defina a cor de fundo do slide como azul.
$slide->getBackground()->setType(BackgroundType::OwnBackground);
$slide->getBackground()->getFillFormat()->setFillType(FillType::Solid);
$slide->getBackground()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
// Salve a apresentação no disco.
$presentation->save("SolidColorBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Definir um Fundo de Cor Sólida para um Slide Mestre
Aspose.Slides permite definir uma cor sólida como fundo para o slide mestre em uma apresentação. O slide mestre atua como um modelo que controla a formatação de todos os slides, portanto, ao escolher uma cor sólida para o fundo do slide mestre, ela será aplicada a cada slide.
- Crie uma instância da Presentation class.
- Defina o BackgroundType do slide mestre (via
getMasters) comoOwnBackground. - Defina o FillType do fundo do slide mestre como
Solid. - Use o método getSolidFillColor para especificar a cor de fundo sólida.
- Salve a apresentação modificada.
O exemplo PHP a seguir mostra como definir uma cor sólida (verde) como fundo para um slide mestre:
// Crie uma instância da classe Presentation.
$presentation = new Presentation();
try {
$masterSlide = $presentation->getMasters()->get_Item(0);
// Defina a cor de fundo para o slide Master como Verde Floresta.
$masterSlide->getBackground()->setType(BackgroundType::OwnBackground);
$masterSlide->getBackground()->getFillFormat()->setFillType(FillType::Solid);
$masterSlide->getBackground()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
// Salve a apresentação no disco.
$presentation->save("MasterSlideBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Definir um Fundo de Gradiente para um Slide
Um gradiente é um efeito gráfico criado por uma mudança gradual de cor. Quando usado como fundo de slide, gradientes podem tornar as apresentações mais artísticas e profissionais. Aspose.Slides permite definir uma cor de gradiente como fundo para slides.
- Crie uma instância da Presentation class.
- Defina o BackgroundType do slide como
OwnBackground. - Defina o FillType do fundo do slide como
Gradient. - Use o método getGradientFormat em FillFormat para configurar as opções de gradiente desejadas.
- Salve a apresentação modificada.
O exemplo PHP a seguir mostra como definir uma cor de gradiente como fundo para um slide:
// Crie uma instância da classe Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// Aplicar um efeito de gradiente ao fundo.
$slide->getBackground()->setType(BackgroundType::OwnBackground);
$slide->getBackground()->getFillFormat()->setFillType(FillType::Gradient);
$slide->getBackground()->getFillFormat()->getGradientFormat()->setTileFlip(TileFlip::FlipBoth);
// Salve a apresentação no disco.
$presentation->save("GradientBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Definir uma Imagem como Fundo de Slide
Além de preenchimentos sólidos e de gradiente, Aspose.Slides permite usar imagens como fundos de slide.
- Crie uma instância da Presentation class.
- Defina o BackgroundType do slide como
OwnBackground. - Defina o FillType do fundo do slide como
Picture. - Carregue a imagem que deseja usar como fundo do slide.
- Adicione a imagem à coleção de imagens da apresentação.
- Use o método getPictureFillFormat em FillFormat para atribuir a imagem como fundo.
- Salve a apresentação modificada.
O exemplo PHP a seguir mostra como definir uma imagem como fundo para um slide:
// Crie uma instância da classe Presentation.
$presentation = new Presentation();
try {
$slide = $presentation->getSlides()->get_Item(0);
// Defina as propriedades da imagem de fundo.
$slide->getBackground()->setType(BackgroundType::OwnBackground);
$slide->getBackground()->getFillFormat()->setFillType(FillType::Picture);
$slide->getBackground()->getFillFormat()->getPictureFillFormat()->setPictureFillMode(PictureFillMode::Stretch);
// Carregue a imagem.
$image = Images::fromFile("Tulips.jpg");
// Adicione a imagem à coleção de imagens da apresentação.
$ppImage = $presentation->getImages()->addImage($image);
$image->dispose();
$slide->getBackground()->getFillFormat()->getPictureFillFormat()->getPicture()->setImage($ppImage);
// Salve a apresentação no disco.
$presentation->save("ImageAsBackground.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
O exemplo de código a seguir mostra como definir o tipo de preenchimento de fundo como imagem em mosaico e modificar as propriedades de repetição:
$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();
// Defina a imagem usada para o preenchimento de fundo.
$backPictureFillFormat = $background->getFillFormat()->getPictureFillFormat();
$backPictureFillFormat->getPicture()->setImage($ppImage);
// Defina o modo de preenchimento da imagem como Mosaico e ajuste as propriedades do mosaico.
$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();
}
Alterar a Transparência da Imagem de Fundo
Você pode querer ajustar a transparência da imagem de fundo de um slide para que o conteúdo do slide se destaque. O código PHP a seguir mostra como alterar a transparência da imagem de fundo de um slide:
$transparencyValue = 30; // Por exemplo.
// Obtenha a coleção de operações de transformação de imagem.
$imageTransform = $slide->getBackground()->getFillFormat()->getPictureFillFormat()->getPicture()->getImageTransform();
// Encontre um efeito de transparência de porcentagem fixa existente.
$transparencyOperation = null;
foreach($imageTransform as $operation) {
if (java_instanceof($operation, new JavaClass("com.aspose.slides.AlphaModulateFixed"))) {
$transparencyOperation = $operation;
break;
}
}
// Defina o novo valor de transparência.
if (java_is_null($transparencyOperation)) {
$imageTransform->addAlphaModulateFixedEffect(100 - $transparencyValue);
} else {
$transparencyOperation->setAmount(100 - $transparencyValue);
}
Obter o Valor de Fundo do Slide
Aspose.Slides fornece a classe BackgroundEffectiveData para recuperar os valores de fundo efetivos de um slide. Essa classe expõe o FillFormat e o EffectFormat efetivos.
Usando o método getBackground da classe BaseSlide, você pode obter o fundo efetivo de um slide.
O exemplo PHP a seguir mostra como obter o valor de fundo efetivo de um slide:
// Crie uma instância da classe Presentation.
$presentation = new Presentation("Sample.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
// Recupere o fundo efetivo, levando em conta mestre, layout e tema.
$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
Posso redefinir um fundo personalizado e restaurar o fundo do tema/layout?
Sim. Remova o preenchimento personalizado do slide e o fundo será herdado novamente do slide de layout/mestre correspondente (ou seja, o fundo do tema).
O que acontece com o fundo se eu mudar o tema da apresentação mais tarde?
Se um slide tem seu próprio preenchimento, ele permanecerá inalterado. Se o fundo for herdado do layout/mestre, ele será atualizado para corresponder ao novo tema.