Adicionar formas de linha às apresentações em PHP
Visão geral
Aspose.Slides permite que você adicione formas de linha aos slides do PowerPoint programaticamente. Este artigo mostra como criar uma linha simples e como personalizar uma linha para que ela apareça como uma seta.
Você aprenderá como adicionar uma forma de linha a um slide, ajustar sua aparência visual e salvar a apresentação atualizada. Os exemplos se concentram em configurações práticas de formatação de linha, como estilo, largura, padrão de traços, opções de ponta de seta e cor de preenchimento.
Criar uma linha simples
- Crie uma instância da classe Presentation.
- Obtenha a referência de um slide usando seu Índice.
- Adicione um AutoShape do tipo Line usando o método addAutoShape exposto pelo objeto ShapeCollection.
- Grave a apresentação modificada como um arquivo PPTX.
No exemplo abaixo, adicionamos uma linha ao primeiro slide da apresentação.
# Instanciar a classe PresentationEx que representa o arquivo PPTX
$pres = new Presentation();
try {
# Obter o primeiro slide
$sld = $pres->getSlides()->get_Item(0);
# Adicionar um AutoShape do tipo linha
$sld->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
# Gravar o PPTX no disco
$pres->save("LineShape.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Criar uma linha em forma de seta
- Crie uma instância da classe Presentation.
- Obtenha a referência de um slide usando seu Índice.
- Adicione um AutoShape do tipo Line usando o método addAutoShape exposto pelo objeto ShapeCollection.
- Defina o Estilo de linha para um dos estilos oferecidos pelo Aspose.Slides for PHP via Java.
- Defina a Largura da linha.
- Defina o Dash Style da linha para um dos estilos oferecidos pelo Aspose.Slides for PHP via Java.
- Defina o Arrow Head Style e o Length do ponto inicial da linha.
- Defina o Arrow Head Style e o Length do ponto final da linha.
- Grave a apresentação modificada como um arquivo PPTX.
# Instanciar a classe PresentationEx que representa o arquivo PPTX
$pres = new Presentation();
try {
# Obter o primeiro slide
$sld = $pres->getSlides()->get_Item(0);
# Adicionar um AutoShape do tipo linha
$shp = $sld->getShapes()->addAutoShape(ShapeType::Line, 50, 150, 300, 0);
# Aplicar alguma formatação na linha
$shp->getLineFormat()->setStyle(LineStyle->ThickBetweenThin);
$shp->getLineFormat()->setWidth(10);
$shp->getLineFormat()->setDashStyle(LineDashStyle->DashDot);
$shp->getLineFormat()->setBeginArrowheadLength(LineArrowheadLength->Short);
$shp->getLineFormat()->setBeginArrowheadStyle(LineArrowheadStyle->Oval);
$shp->getLineFormat()->setEndArrowheadLength(LineArrowheadLength->Long);
$shp->getLineFormat()->setEndArrowheadStyle(LineArrowheadStyle->Triangle);
$shp->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
$shp->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(new java("java.awt.Color", PresetColor->Maroon));
# Gravar o PPTX no disco
$pres->save("LineShape.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Perguntas frequentes
Posso converter uma linha regular em um conector para que ela “encaixe” nas formas?
Não. Uma linha regular (um AutoShape do tipo Line) não se transforma automaticamente em um conector. Para que ela se encaixe nas formas, use o tipo Connector dedicado e as corresponding APIs para conexões.
O que devo fazer se as propriedades de uma linha forem herdadas do tema e for difícil determinar os valores finais?
Leia as propriedades efetivas através de LineFormatEffectiveData/LineFillFormatEffectiveData — elas já consideram a herança e os estilos do tema.
Posso bloquear uma linha contra edição (movimento, redimensionamento)?
Sim. As formas fornecem lock objects que permitem impedir operações de edição.