Gestionar fuentes en presentaciones usando Python vía Java

Visión general

Aspose.Slides le permite gestionar las propiedades de fuente en el texto de una presentación directamente desde su código. Puede acceder al texto en las diapositivas a través de formas, marcos de texto, párrafos y porciones, y luego aplicar formato al texto seleccionado.

Este artículo explica cómo configurar las propiedades relacionadas con la fuente para texto existente en una presentación, incluyendo la familia de fuentes, estilos negrita y cursiva, alineación de párrafo y color de fuente. También muestra cómo crear un cuadro de texto, agregarle texto y establecer propiedades de fuente como familia, negrita, cursiva, subrayado, tamaño y color antes de guardar el resultado como un archivo PPTX.

Gestionar propiedades relacionadas con la fuente

Para gestionar las propiedades de fuente de un párrafo usando Aspose.Slides for Python vía Java:

  1. Crear una instancia de la clase Presentation.
  2. Obtener una referencia a una diapositiva mediante su índice.
  3. Acceder a las formas Placeholder en la diapositiva como AutoShape.
  4. Obtener el Paragraph del TextFrame expuesto por AutoShape.
  5. Justificar el párrafo.
  6. Acceder al texto del Paragraph mediante su Portion.
  7. Definir la fuente mediante FontData y establecer la Font de la Portion en consecuencia.
    1. Establecer la fuente en negrita.
    2. Establecer la fuente en cursiva.
  8. Establecer el color de la fuente mediante el FillFormat expuesto por el objeto Portion.
  9. Guardar la presentación modificada en un archivo PPTX.

La implementación de los pasos anteriores se muestra a continuación. Toma una presentación sin formato y aplica formato a las fuentes en una de las diapositivas. Las capturas de pantalla que siguen muestran el archivo de entrada y cómo los fragmentos de código lo modifican. El código cambia la fuente, el color y el estilo de la fuente.

Text in the input presentation
Figura: El texto en el archivo de entrada
Text with updated font formatting
Figura: El mismo texto con el formato actualizado
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

# Cargar la presentación.
presentation = Presentation("FontProperties.pptx")
try:
    # Acceder a la primera diapositiva y a los marcos de texto de sus dos primeros marcadores de posición.
    slide = presentation.getSlides().get_Item(0)
    title_text_frame = slide.getShapes().get_Item(0).getTextFrame()
    body_text_frame = slide.getShapes().get_Item(1).getTextFrame()

    # Acceder al primer párrafo en cada marco 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)

    # Acceder a la primera porción en cada párrafo.
    title_portion = title_paragraph.getPortions().get_Item(0)
    body_portion = body_paragraph.getPortions().get_Item(0)

    # Definir y asignar nuevas fuentes.
    title_font = FontData("Elephant")
    body_font = FontData("Castellar")
    title_portion.getPortionFormat().setLatinFont(title_font)
    body_portion.getPortionFormat().setLatinFont(body_font)

    # Establecer las fuentes en negrita y cursiva.
    title_portion.getPortionFormat().setFontBold(NullableBool.True_)
    body_portion.getPortionFormat().setFontBold(NullableBool.True_)
    title_portion.getPortionFormat().setFontItalic(NullableBool.True_)
    body_portion.getPortionFormat().setFontItalic(NullableBool.True_)

    # Establecer los colores de la fuente.
    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)

    # Guardar la presentación.
    presentation.save("WelcomeFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Establecer propiedades de fuente del texto

Para crear un cuadro de texto y establecer las propiedades de fuente del texto que contiene:

  1. Crear una instancia de la clase Presentation.
  2. Obtener la referencia de una diapositiva mediante su índice.
  3. Añadir un AutoShape de tipo Rectangle a la diapositiva.
  4. Eliminar el estilo de relleno asociado al AutoShape.
  5. Acceder al TextFrame del AutoShape.
  6. Añadir texto al TextFrame.
  7. Acceder al objeto Portion asociado al TextFrame.
  8. Definir la fuente que se usará para la Portion.
  9. Establecer otras propiedades de fuente como negrita, cursiva, subrayado, color y altura mediante las propiedades correspondientes expuestas por el objeto Portion.
  10. Guardar la presentación modificada como un archivo PPTX.

La implementación de los pasos anteriores se muestra a continuación.

Text with font properties applied
Figura: Texto con algunas propiedades de fuente establecidas por Aspose.Slides for Python vía Java
import jpype
import asposeslides

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

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

presentation = Presentation()
try:
    # Obtener la primera diapositiva y añadir un rectángulo.
    slide = presentation.getSlides().get_Item(0)
    shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 50)

    # Eliminar el relleno de la forma.
    shape.getFillFormat().setFillType(FillType.NoFill)

    # Añadir texto al marco de texto de la forma.
    text_frame = shape.getTextFrame()
    text_frame.setText("Aspose TextBox")
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)

    # Establecer la familia de fuente.
    font = FontData("Times New Roman")
    portion.getPortionFormat().setLatinFont(font)

    # Establecer negrita, cursiva, subrayado y tamaño de fuente.
    portion.getPortionFormat().setFontBold(NullableBool.True_)
    portion.getPortionFormat().setFontItalic(NullableBool.True_)
    portion.getPortionFormat().setFontUnderline(TextUnderlineType.Single)
    portion.getPortionFormat().setFontHeight(25)

    # Establecer el color de la fuente.
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)

    # Guardar la presentación.
    presentation.save("pptxFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()