Gérer les polices dans les présentations avec Python via Java

Vue d’ensemble

Aspose.Slides vous permet de gérer les propriétés des polices dans le texte d’une présentation directement depuis votre code. Vous pouvez accéder au texte des diapositives via les formes, les cadres de texte, les paragraphes et les portions, puis appliquer le formatage au texte sélectionné.

Cet article explique comment configurer les propriétés liées aux polices pour du texte existant dans une présentation, y compris la famille de polices, les styles gras et italique, l’alignement du paragraphe et la couleur de la police. Il montre également comment créer une zone de texte, y ajouter du texte et définir les propriétés de police telles que la famille, le gras, l’italique, le soulignement, la taille et la couleur avant d’enregistrer le résultat dans un fichier PPTX.

Gérer les propriétés liées aux polices

Pour gérer les propriétés de police d’un paragraphe à l’aide d’Aspose.Slides for Python via Java :

  1. Créez une instance de la classe Presentation.
  2. Obtenez une référence à une diapositive en utilisant son indice.
  3. Accédez aux formes Placeholder de la diapositive en tant que AutoShape.
  4. Récupérez le Paragraph à partir du TextFrame exposé par AutoShape.
  5. Justifiez le paragraphe.
  6. Accédez au texte d’un Paragraph via la Portion.
  7. Définissez la police à l’aide de FontData et réglez la Font de la Portion en conséquence.
    1. Mettez la police en gras.
    2. Mettez la police en italique.
  8. Définissez la couleur de la police à l’aide du FillFormat exposé par l’objet Portion.
  9. Enregistrez la présentation modifiée dans un fichier PPTX.

L’implémentation des étapes ci‑dessus est donnée ci‑après. Elle prend une présentation non décorée et formatte les polices sur l’une des diapositives. Les captures d’écran qui suivent montrent le fichier d’entrée et la façon dont les extraits de code le modifient. Le code change la police, la couleur et le style de la police.

Text in the input presentation
Figure : Le texte du fichier d’entrée
Text with updated font formatting
Figure : Le même texte avec le formatage mis à jour
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

# Charger la présentation.
presentation = Presentation("FontProperties.pptx")
try:
    # Accéder à la première diapositive et aux cadres de texte de ses deux premiers espaces réservés.
    slide = presentation.getSlides().get_Item(0)
    title_text_frame = slide.getShapes().get_Item(0).getTextFrame()
    body_text_frame = slide.getShapes().get_Item(1).getTextFrame()

    # Accéder au premier paragraphe de chaque cadre de texte.
    title_paragraph = title_text_frame.getParagraphs().get_Item(0)
    body_paragraph = body_text_frame.getParagraphs().get_Item(0)
    body_paragraph.getParagraphFormat().setAlignment(TextAlignment.JustifyLow)

    # Accéder à la première portion de chaque paragraphe.
    title_portion = title_paragraph.getPortions().get_Item(0)
    body_portion = body_paragraph.getPortions().get_Item(0)

    # Définir et attribuer de nouvelles polices.
    title_font = FontData("Elephant")
    body_font = FontData("Castellar")
    title_portion.getPortionFormat().setLatinFont(title_font)
    body_portion.getPortionFormat().setLatinFont(body_font)

    # Mettre les polices en gras et en italique.
    title_portion.getPortionFormat().setFontBold(NullableBool.True_)
    body_portion.getPortionFormat().setFontBold(NullableBool.True_)
    title_portion.getPortionFormat().setFontItalic(NullableBool.True_)
    body_portion.getPortionFormat().setFontItalic(NullableBool.True_)

    # Définir les couleurs des polices.
    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)

    # Enregistrer la présentation.
    presentation.save("WelcomeFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Définir les propriétés de police du texte

Pour créer une zone de texte et définir les propriétés de police du texte qu’elle contient :

  1. Créez une instance de la classe Presentation.
  2. Obtenez la référence d’une diapositive en utilisant son indice.
  3. Ajoutez un AutoShape de type Rectangle à la diapositive.
  4. Supprimez le style de remplissage associé au AutoShape.
  5. Accédez au TextFrame du AutoShape.
  6. Ajoutez du texte au TextFrame.
  7. Accédez à l’objet Portion associé au TextFrame.
  8. Définissez la police à utiliser pour la Portion.
  9. Définissez d’autres propriétés de police comme le gras, l’italique, le soulignement, la couleur et la hauteur à l’aide des propriétés correspondantes exposées par l’objet Portion.
  10. Enregistrez la présentation modifiée dans un fichier PPTX.

L’implémentation des étapes ci‑dessus est donnée ci‑après.

Text with font properties applied
Figure : Texte avec certaines propriétés de police définies par 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:
    # Récupérez la première diapositive et ajoutez un rectangle.
    slide = presentation.getSlides().get_Item(0)
    shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 50)

    # Supprimez le remplissage de la forme.
    shape.getFillFormat().setFillType(FillType.NoFill)

    # Ajoutez du texte au cadre de texte de la forme.
    text_frame = shape.getTextFrame()
    text_frame.setText("Aspose TextBox")
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)

    # Définissez la famille de police.
    font = FontData("Times New Roman")
    portion.getPortionFormat().setLatinFont(font)

    # Définissez le gras, l'italique, le soulignement et la taille de police.
    portion.getPortionFormat().setFontBold(NullableBool.True_)
    portion.getPortionFormat().setFontItalic(NullableBool.True_)
    portion.getPortionFormat().setFontUnderline(TextUnderlineType.Single)
    portion.getPortionFormat().setFontHeight(25)

    # Définissez la couleur de la police.
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)

    # Enregistrez la présentation.
    presentation.save("pptxFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()