Zarządzanie czcionkami w prezentacjach przy użyciu Pythona przez Java

Przegląd

Aspose.Slides umożliwia zarządzanie właściwościami czcionki w tekście prezentacji bezpośrednio z kodu. Możesz uzyskać dostęp do tekstu w slajdach poprzez kształty, ramki tekstowe, akapity i fragmenty, a następnie zastosować formatowanie do wybranego tekstu.

W tym artykule wyjaśniono, jak konfigurować właściwości związane z czcionką dla istniejącego tekstu w prezentacji, w tym rodzinę czcionki, pogrubienie i kursywę, wyrównanie akapitu oraz kolor czcionki. Pokazano również, jak utworzyć pole tekstowe, dodać do niego tekst oraz ustawić właściwości czcionki, takie jak rodzina czcionki, pogrubienie, kursywa, podkreślenie, rozmiar i kolor, przed zapisaniem wyniku jako plik PPTX.

Zarządzanie właściwościami czcionki

Aby zarządzać właściwościami czcionki akapitu przy użyciu Aspose.Slides for Python via Java:

  1. Utwórz instancję klasy Presentation.
  2. Uzyskaj odniesienie do slajdu, używając jego indeksu.
  3. Uzyskaj dostęp do kształtów Placeholder w slajdzie jako AutoShape.
  4. Pobierz Paragraph z TextFrame udostępnionego przez AutoShape.
  5. Wyrównaj akapit (justify).
  6. Uzyskaj dostęp do Portion tekstu w Paragraph.
  7. Zdefiniuj czcionkę za pomocą FontData i ustaw Font fragmentu tekstu Portion odpowiednio.
    1. Ustaw czcionkę jako pogrubioną.
    2. Ustaw czcionkę jako kursywę.
  8. Ustaw kolor czcionki za pomocą FillFormat udostępnionego przez obiekt Portion.
  9. Zapisz zmodyfikowaną prezentację jako plik PPTX.

Implementację powyższych kroków podano poniżej. Przykład przyjmuje nieformatowaną prezentację i formatuje czcionki na jednym ze slajdów. Zrzuty ekranu poniżej pokazują plik wejściowy oraz zmiany wprowadzone przez fragmenty kodu. Kod zmienia czcionkę, kolor i styl czcionki.

Text in the input presentation
Rysunek: Tekst w pliku wejściowym
Text with updated font formatting
Rysunek: Ten sam tekst po zaktualizowaniu formatowania
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

# Załaduj prezentację.
presentation = Presentation("FontProperties.pptx")
try:
    # Uzyskaj dostęp do pierwszego slajdu oraz ramek tekstowych jego pierwszych dwóch zastępców.
    slide = presentation.getSlides().get_Item(0)
    title_text_frame = slide.getShapes().get_Item(0).getTextFrame()
    body_text_frame = slide.getShapes().get_Item(1).getTextFrame()

    # Uzyskaj dostęp do pierwszego akapitu w każdej ramce tekstowej.
    title_paragraph = title_text_frame.getParagraphs().get_Item(0)
    body_paragraph = body_text_frame.getParagraphs().get_Item(0)
    body_paragraph.getParagraphFormat().setAlignment(TextAlignment.JustifyLow)

    # Uzyskaj dostęp do pierwszego fragmentu w każdym akapicie.
    title_portion = title_paragraph.getPortions().get_Item(0)
    body_portion = body_paragraph.getPortions().get_Item(0)

    # Zdefiniuj i przypisz nowe czcionki.
    title_font = FontData("Elephant")
    body_font = FontData("Castellar")
    title_portion.getPortionFormat().setLatinFont(title_font)
    body_portion.getPortionFormat().setLatinFont(body_font)

    # Ustaw czcionki jako pogrubione i kursywą.
    title_portion.getPortionFormat().setFontBold(NullableBool.True_)
    body_portion.getPortionFormat().setFontBold(NullableBool.True_)
    title_portion.getPortionFormat().setFontItalic(NullableBool.True_)
    body_portion.getPortionFormat().setFontItalic(NullableBool.True_)

    # Ustaw kolory czcionek.
    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)

    # Zapisz prezentację.
    presentation.save("WelcomeFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Ustawianie właściwości czcionki tekstu

Aby utworzyć pole tekstowe i ustawić właściwości czcionki tekstu w nim:

  1. Utwórz instancję klasy Presentation.
  2. Uzyskaj odniesienie do slajdu, używając jego indeksu.
  3. Dodaj do slajdu AutoShape typu Rectangle.
  4. Usuń styl wypełnienia powiązany z AutoShape.
  5. Uzyskaj dostęp do TextFrame kształtu AutoShape.
  6. Dodaj trochę tekstu do TextFrame.
  7. Uzyskaj dostęp do obiektu Portion powiązanego z TextFrame.
  8. Zdefiniuj czcionkę, która ma być użyta w Portion.
  9. Ustaw inne właściwości czcionki, takie jak pogrubienie, kursywa, podkreślenie, kolor i wysokość, korzystając z odpowiednich właściwości udostępnionych przez obiekt Portion.
  10. Zapisz zmodyfikowaną prezentację jako plik PPTX.

Implementację powyższych kroków podano poniżej.

Text with font properties applied
Rysunek: Tekst z wybranymi właściwościami czcionki ustawionymi przez 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:
    # Pobierz pierwszy slajd i dodaj prostokąt.
    slide = presentation.getSlides().get_Item(0)
    shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 50)

    # Usuń wypełnienie kształtu.
    shape.getFillFormat().setFillType(FillType.NoFill)

    # Dodaj tekst do ramki tekstowej kształtu.
    text_frame = shape.getTextFrame()
    text_frame.setText("Aspose TextBox")
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)

    # Ustaw rodzinę czcionki.
    font = FontData("Times New Roman")
    portion.getPortionFormat().setLatinFont(font)

    # Ustaw pogrubienie, kursywę, podkreślenie i rozmiar czcionki.
    portion.getPortionFormat().setFontBold(NullableBool.True_)
    portion.getPortionFormat().setFontItalic(NullableBool.True_)
    portion.getPortionFormat().setFontUnderline(TextUnderlineType.Single)
    portion.getPortionFormat().setFontHeight(25)

    # Ustaw kolor czcionki.
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)

    # Zapisz prezentację.
    presentation.save("pptxFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()