Gerenciar Fontes em Apresentações Usando PHP

Gerenciar Propriedades Relacionadas à Fonte

Para gerenciar as propriedades de fonte de um parágrafo usando Aspose.Slides for PHP via Java:

  1. Crie uma instância da classe Presentation.
  2. Obtenha a referência de um slide usando seu índice.
  3. Acesse as formas Placeholder no slide e faça o type cast para AutoShape.
  4. Recupere o Paragraph a partir do TextFrame exposto por AutoShape.
  5. Justifique o parágrafo.
  6. Acesse a Portion de texto de um Paragraph.
  7. Defina a fonte usando FontData e ajuste a Font da Portion de texto de acordo.
    1. Defina a fonte como negrito.
    2. Defina a fonte como itálico.
  8. Defina a cor da fonte usando o FillFormat exposto pelo objeto Portion.
  9. Salve a apresentação modificada em um arquivo PPTX.

A implementação das etapas acima é apresentada a seguir. Ela recebe uma apresentação sem formatação e altera as fontes em um dos slides. As capturas de tela a seguir mostram o arquivo de entrada e como os trechos de código o modificam. O código altera a fonte, a cor e o estilo da fonte.

todo:image_alt_text
Figura: O texto no arquivo de entrada
todo:image_alt_text
Figura: O mesmo texto com formatação atualizada
  # Instanciar um objeto Presentation que representa um arquivo PPTX
  $pres = new Presentation("FontProperties.pptx");
  try {
    # Acessar um slide usando sua posição
    $slide = $pres->getSlides()->get_Item(0);
    # Acessar o primeiro e o segundo placeholder no slide e fazer typecast para AutoShape
    $tf1 = $slide->getShapes()->get_Item(0)->getTextFrame();
    $tf2 = $slide->getShapes()->get_Item(1)->getTextFrame();
    # Acessar o primeiro Parágrafo
    $para1 = $tf1->getParagraphs()->get_Item(0);
    $para2 = $tf2->getParagraphs()->get_Item(0);
    # Justificar o parágrafo
    $para2->getParagraphFormat()->setAlignment(TextAlignment->JustifyLow);
    # Acessar a primeira porção
    $port1 = $para1->getPortions()->get_Item(0);
    $port2 = $para2->getPortions()->get_Item(0);
    # Definir novas fontes
    $fd1 = new FontData("Elephant");
    $fd2 = new FontData("Castellar");
    # Atribuir novas fontes à porção
    $port1->getPortionFormat()->setLatinFont($fd1);
    $port2->getPortionFormat()->setLatinFont($fd2);
    # Definir fonte como Negrito
    $port1->getPortionFormat()->setFontBold(NullableBool::True);
    $port2->getPortionFormat()->setFontBold(NullableBool::True);
    # Definir fonte como Itálico
    $port1->getPortionFormat()->setFontItalic(NullableBool::True);
    $port2->getPortionFormat()->setFontItalic(NullableBool::True);
    # Definir cor da fonte
    $port1->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port1->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    $port2->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port2->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
    # Salvar o PPTX no disco
    $pres->save("WelcomeFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Definir Propriedades de Fonte do Texto

Para criar uma caixa de texto e definir as propriedades de fonte do texto nela:

  1. Crie uma instância da classe Presentation.
  2. Obtenha a referência de um slide usando seu índice.
  3. Adicione um AutoShape do tipo Rectangle ao slide.
  4. Remova o estilo de preenchimento associado ao AutoShape.
  5. Acesse o TextFrame do AutoShape.
  6. Adicione algum texto ao TextFrame.
  7. Acesse o objeto Portion associado ao TextFrame.
  8. Defina a fonte a ser usada para a Portion.
  9. Defina outras propriedades da fonte, como negrito, itálico, sublinhado, cor e altura, usando as propriedades relevantes expostas pelo objeto Portion.
  10. Escreva a apresentação modificada como um arquivo PPTX.

A implementação das etapas acima é apresentada a seguir.

todo:image_alt_text
Figura: Texto com algumas propriedades de fonte definidas pelo Aspose.Slides for PHP via Java
  # Instanciar um objeto Presentation que representa um arquivo PPTX
  $pres = new Presentation();
  try {
    # Obter o primeiro slide
    $sld = $pres->getSlides()->get_Item(0);
    # Adicionar um AutoShape do tipo Rectangle
    $ashp = $sld->getShapes()->addAutoShape(ShapeType::Rectangle, 50, 50, 200, 50);
    # Remover qualquer estilo de preenchimento associado ao AutoShape
    $ashp->getFillFormat()->setFillType(FillType::NoFill);
    # Acessar o TextFrame associado ao AutoShape
    $tf = $ashp->getTextFrame();
    $tf->setText("Aspose TextBox");
    # Acessar a Portion associada ao TextFrame
    $port = $tf->getParagraphs()->get_Item(0)->getPortions()->get_Item(0);
    # Definir a Fonte para a Portion
    $port->getPortionFormat()->setLatinFont(new FontData("Times New Roman"));
    # Definir a propriedade Negrito da Fonte
    $port->getPortionFormat()->setFontBold(NullableBool::True);
    # Definir a propriedade Itálico da Fonte
    $port->getPortionFormat()->setFontItalic(NullableBool::True);
    # Definir a propriedade Sublinhado da Fonte
    $port->getPortionFormat()->setFontUnderline(TextUnderlineType::Single);
    # Definir a Altura da Fonte
    $port->getPortionFormat()->setFontHeight(25);
    # Definir a cor da Fonte
    $port->getPortionFormat()->getFillFormat()->setFillType(FillType::Solid);
    $port->getPortionFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
    # Salvar a apresentação no disco
    $pres->save("pptxFont.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }