Gerenciar Fontes em Apresentações Usando Python via Java

Visão Geral

O Aspose.Slides permite que você gerencie propriedades de fonte no texto de apresentações diretamente a partir do seu código. Você pode acessar o texto nos slides por meio de shapes, quadros de texto, parágrafos e porções, e então aplicar formatação ao texto selecionado.

Este artigo explica como configurar propriedades relacionadas a fontes para texto existente em uma apresentação, incluindo família de fontes, estilos negrito e itálico, alinhamento de parágrafo e cor da fonte. Também demonstra como criar uma caixa de texto, adicionar texto a ela e definir propriedades de fonte como família, negrito, itálico, sublinhado, tamanho e cor antes de salvar o resultado como um arquivo PPTX.

Gerenciar Propriedades Relacionadas à Fonte

Para gerenciar propriedades de fonte de um parágrafo usando Aspose.Slides for Python 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 como AutoShape.
  4. Recupere o Paragraph 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 simples e formata 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 alteram. O código altera a fonte, a cor e o estilo da fonte.

Texto na apresentação de entrada
Figura: O texto no arquivo de entrada
Texto com formatação de fonte atualizada
Figura: O mesmo texto com formatação atualizada
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import FillType, FontData, NullableBool, Presentation, SaveFormat, TextAlignment
from java.awt import Color

# Carregar a apresentação.
presentation = Presentation("FontProperties.pptx")
try:
    # Acessar o primeiro slide e os quadros de texto de seus dois primeiros marcadores de posição.
    slide = presentation.getSlides().get_Item(0)
    title_text_frame = slide.getShapes().get_Item(0).getTextFrame()
    body_text_frame = slide.getShapes().get_Item(1).getTextFrame()

    # Acessar o primeiro parágrafo em cada quadro de texto.
    title_paragraph = title_text_frame.getParagraphs().get_Item(0)
    body_paragraph = body_text_frame.getParagraphs().get_Item(0)
    body_paragraph.getParagraphFormat().setAlignment(TextAlignment.JustifyLow)

    # Acessar a primeira porção em cada parágrafo.
    title_portion = title_paragraph.getPortions().get_Item(0)
    body_portion = body_paragraph.getPortions().get_Item(0)

    # Definir e atribuir novas fontes.
    title_font = FontData("Elephant")
    body_font = FontData("Castellar")
    title_portion.getPortionFormat().setLatinFont(title_font)
    body_portion.getPortionFormat().setLatinFont(body_font)

    # Definir as fontes como negrito e itálico.
    title_portion.getPortionFormat().setFontBold(NullableBool.True_)
    body_portion.getPortionFormat().setFontBold(NullableBool.True_)
    title_portion.getPortionFormat().setFontItalic(NullableBool.True_)
    body_portion.getPortionFormat().setFontItalic(NullableBool.True_)

    # Definir as cores das fontes.
    title_portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
    title_portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)
    body_portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
    body_portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.GREEN)

    # Salvar a apresentação.
    presentation.save("WelcomeFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Definir Propriedades de Fonte do Texto

Para criar uma caixa de texto e definir 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 o Portion.
  9. Defina outras propriedades de fonte, como negrito, itálico, sublinhado, cor e altura, usando as propriedades relevantes expostas pelo objeto Portion.
  10. Grave a apresentação modificada como um arquivo PPTX.

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

Texto com propriedades de fonte aplicadas
Figura: Texto com algumas propriedades de fonte definidas pelo Aspose.Slides for Python via Java
import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import FillType, FontData, NullableBool, Presentation, SaveFormat, ShapeType, TextUnderlineType
from java.awt import Color

presentation = Presentation()
try:
    # Obter o primeiro slide e adicionar um retângulo.
    slide = presentation.getSlides().get_Item(0)
    shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 50)

    # Remover o preenchimento da forma.
    shape.getFillFormat().setFillType(FillType.NoFill)

    # Adicionar texto ao quadro de texto da forma.
    text_frame = shape.getTextFrame()
    text_frame.setText("Aspose TextBox")
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)

    # Definir a família da fonte.
    font = FontData("Times New Roman")
    portion.getPortionFormat().setLatinFont(font)

    # Definir negrito, itálico, sublinhado e tamanho da fonte.
    portion.getPortionFormat().setFontBold(NullableBool.True_)
    portion.getPortionFormat().setFontItalic(NullableBool.True_)
    portion.getPortionFormat().setFontUnderline(TextUnderlineType.Single)
    portion.getPortionFormat().setFontHeight(25)

    # Definir a cor da fonte.
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)

    # Salvar a apresentação.
    presentation.save("pptxFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()