Hantera teckensnitt i presentationer med Python via Java

Översikt

Aspose.Slides låter dig hantera teckensnittsegenskaper i presentationstext direkt från din kod. Du kan komma åt text i bilder via former, textramar, stycken och portioner och sedan applicera formatering på den markerade texten.

Denna artikel förklarar hur du konfigurerar teckensnittsegenskaper för befintlig text i en presentation, inklusive teckensnittsfamilj, fetstil och kursiv stil, styckejustering och teckensnittsfärg. Den visar också hur du skapar en textruta, lägger till text i den och anger teckensnittsegenskaper såsom teckensnittsfamilj, fetstil, kursiv, understruken, teckensnittsstorlek och färg innan du sparar resultatet som en PPTX‑fil.

Hantera teckensnittsrelaterade egenskaper

För att hantera teckensnittsegenskaper för ett stycke med Aspose.Slides for Python via Java:

  1. Skapa en instans av klassen Presentation.
  2. Hämta en bilds referens genom att använda dess index.
  3. Få åtkomst till Placeholder-formerna i bilden som AutoShape.
  4. Hämta Paragraph från TextFrame som exponeras av AutoShape.
  5. Justera stycket.
  6. Få åtkomst till ett Paragraph-text Portion.
  7. Definiera teckensnittet med hjälp av FontData och sätt Font för texten Portion därefter.
    1. Ställ in teckensnittet som fet.
    2. Ställ in teckensnittet som kursiv.
  8. Ange teckensnittsfärgen med hjälp av FillFormat som exponeras av Portion-objektet.
  9. Spara den ändrade presentationen som en PPTX‑fil.

Implementeringen av stegen ovan visas nedan. Den tar en enkel presentation och formaterar teckensnitten på en av bilderna. Skärmbilderna som följer visar indatafilen och hur kodsnuttarna ändrar den. Koden ändrar teckensnittet, färgen och teckensnittsstilen.

Text in the input presentation
Figur: Texten i indatafilen
Text with updated font formatting
Figur: Samma text med uppdaterad formatering
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

# Ladda presentationen.
presentation = Presentation("FontProperties.pptx")
try:
    # Hämta den första bilden och textramarna för dess två första platshållare.
    slide = presentation.getSlides().get_Item(0)
    title_text_frame = slide.getShapes().get_Item(0).getTextFrame()
    body_text_frame = slide.getShapes().get_Item(1).getTextFrame()

    # Hämta det första stycket i varje textram.
    title_paragraph = title_text_frame.getParagraphs().get_Item(0)
    body_paragraph = body_text_frame.getParagraphs().get_Item(0)
    body_paragraph.getParagraphFormat().setAlignment(TextAlignment.JustifyLow)

    # Hämta den första delen i varje stycke.
    title_portion = title_paragraph.getPortions().get_Item(0)
    body_portion = body_paragraph.getPortions().get_Item(0)

    # Definiera och tilldela nya teckensnitt.
    title_font = FontData("Elephant")
    body_font = FontData("Castellar")
    title_portion.getPortionFormat().setLatinFont(title_font)
    body_portion.getPortionFormat().setLatinFont(body_font)

    # Ställ in teckensnitten som fet och kursiv.
    title_portion.getPortionFormat().setFontBold(NullableBool.True_)
    body_portion.getPortionFormat().setFontBold(NullableBool.True_)
    title_portion.getPortionFormat().setFontItalic(NullableBool.True_)
    body_portion.getPortionFormat().setFontItalic(NullableBool.True_)

    # Ställ in teckensnittsfärgerna.
    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)

    # Spara presentationen.
    presentation.save("WelcomeFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Ange teckensnittsegenskaper för text

För att skapa en textruta och ange teckensnittsegenskaper för texten i den:

  1. Skapa en instans av klassen Presentation.
  2. Hämta referensen till en bild genom att använda dess index.
  3. Lägg till en AutoShape av typen Rectangle på bilden.
  4. Ta bort fyllningsstilen som är associerad med AutoShape.
  5. Få åtkomst till AutoShape’s TextFrame.
  6. Lägg till lite text i TextFrame.
  7. Få åtkomst till Portion‑objektet som är associerat med TextFrame.
  8. Definiera teckensnittet som ska användas för Portion.
  9. Ange andra teckensnittsegenskaper såsom fet, kursiv, understruken, färg och storlek med hjälp av de relevanta egenskaperna som exponeras av Portion-objektet.
  10. Skriv den ändrade presentationen som en PPTX‑fil.

Implementeringen av stegen ovan visas nedan.

Text with font properties applied
Figur: Text med några teckensnittsegenskaper inställda av 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:
    # Hämta den första bilden och lägg till en rektangel.
    slide = presentation.getSlides().get_Item(0)
    shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 50)

    # Ta bort figurens fyllning.
    shape.getFillFormat().setFillType(FillType.NoFill)

    # Lägg till text i figurens textram.
    text_frame = shape.getTextFrame()
    text_frame.setText("Aspose TextBox")
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)

    # Ställ in teckensnittsfamiljen.
    font = FontData("Times New Roman")
    portion.getPortionFormat().setLatinFont(font)

    # Ställ in fet, kursiv, understruken och teckensnittsstorlek.
    portion.getPortionFormat().setFontBold(NullableBool.True_)
    portion.getPortionFormat().setFontItalic(NullableBool.True_)
    portion.getPortionFormat().setFontUnderline(TextUnderlineType.Single)
    portion.getPortionFormat().setFontHeight(25)

    # Ställ in teckensnittsfärgen.
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)

    # Spara presentationen.
    presentation.save("pptxFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()