Python via Java を使用してプレゼンテーションのフォントを管理する

概要

Aspose.Slides を使用すると、コードから直接プレゼンテーションのテキストのフォントプロパティを管理できます。スライド内のテキストはシェイプ、テキストフレーム、段落、ポーションを介してアクセスでき、選択したテキストに書式設定を適用できます。

この記事では、プレゼンテーション内の既存テキストに対してフォントファミリ、太字・斜体スタイル、段落配置、フォントカラーなどのフォント関連プロパティを構成する方法を説明します。また、テキストボックスを作成し、テキストを追加し、フォントファミリ、太字、斜体、下線、フォントサイズ、カラーなどのフォントプロパティを設定して結果を PPTX ファイルとして保存する方法も示します。

フォント関連プロパティの管理

Aspose.Slides for Python via Java を使用して段落のフォントプロパティを管理する手順:

  1. Presentation クラスのインスタンスを作成します。
  2. インデックスを使用してスライドの参照を取得します。
  3. スライド内の Placeholder シェイプにアクセスし、AutoShape として取得します。
  4. [AutoShape] が提供する TextFrame から Paragraph を取得します。
  5. 段落を左右揃えにします。
  6. [Paragraph] のテキスト Portion にアクセスします。
  7. FontData を使用してフォントを定義し、テキスト PortionFont を設定します。
    1. フォントを太字に設定します。
    2. フォントを斜体に設定します。
  8. [Portion] オブジェクトが提供する FillFormat を使用してフォントの色を設定します。
  9. 変更したプレゼンテーションを PPTX ファイルとして保存します。

上記手順の実装例は以下のとおりです。装飾されていないプレゼンテーションを取得し、スライドのフォントをフォーマットします。以下のスクリーンショットは入力ファイルとコード スニペットがそれをどのように変更するかを示しています。コードはフォント、色、フォントスタイルを変更します。

Text in the input presentation
図: 入力ファイルのテキスト
Text with updated font formatting
図: 更新された書式の同じテキスト
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

# プレゼンテーションをロードする。
presentation = Presentation("FontProperties.pptx")
try:
    # 最初のスライドと、最初の2つのプレースホルダーのテキストフレームにアクセスする。
    slide = presentation.getSlides().get_Item(0)
    title_text_frame = slide.getShapes().get_Item(0).getTextFrame()
    body_text_frame = slide.getShapes().get_Item(1).getTextFrame()

    # 各テキストフレームの最初の段落にアクセスする。
    title_paragraph = title_text_frame.getParagraphs().get_Item(0)
    body_paragraph = body_text_frame.getParagraphs().get_Item(0)
    body_paragraph.getParagraphFormat().setAlignment(TextAlignment.JustifyLow)

    # 各段落の最初のポーションにアクセスする。
    title_portion = title_paragraph.getPortions().get_Item(0)
    body_portion = body_paragraph.getPortions().get_Item(0)

    # 新しいフォントを定義して割り当てる。
    title_font = FontData("Elephant")
    body_font = FontData("Castellar")
    title_portion.getPortionFormat().setLatinFont(title_font)
    body_portion.getPortionFormat().setLatinFont(body_font)

    # フォントを太字と斜体に設定する。
    title_portion.getPortionFormat().setFontBold(NullableBool.True_)
    body_portion.getPortionFormat().setFontBold(NullableBool.True_)
    title_portion.getPortionFormat().setFontItalic(NullableBool.True_)
    body_portion.getPortionFormat().setFontItalic(NullableBool.True_)

    # フォントの色を設定する。
    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)

    # プレゼンテーションを保存する。
    presentation.save("WelcomeFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

テキストフォントプロパティの設定

テキスト ボックスを作成し、その中のテキストにフォントプロパティを設定する手順:

  1. Presentation クラスのインスタンスを作成します。
  2. インデックスを使用してスライドの参照を取得します。
  3. スライドにタイプ RectangleAutoShape を追加します。
  4. [AutoShape] に関連付けられた塗りつぶしスタイルを削除します。
  5. [AutoShape] の TextFrame にアクセスします。
  6. [TextFrame] にテキストを追加します。
  7. [TextFrame] に関連付けられた Portion オブジェクトにアクセスします。
  8. [Portion] に使用するフォントを定義します。
  9. [Portion] オブジェクトが提供する関連プロパティを使用して、太字、斜体、下線、色、高さなどの他のフォントプロパティを設定します。
  10. 変更したプレゼンテーションを PPTX ファイルとして書き出します。

上記手順の実装例は以下のとおりです。

Text with font properties applied
図: Aspose.Slides for Python via Java によって設定されたフォントプロパティを持つテキスト
import jpile
import asposeslides

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

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

presentation = Presentation()
try:
    # 最初のスライドを取得し、長方形を追加する。
    slide = presentation.getSlides().get_Item(0)
    shape = slide.getShapes().addAutoShape(ShapeType.Rectangle, 50, 50, 200, 50)

    # シェイプの塗りつぶしを削除する。
    shape.getFillFormat().setFillType(FillType.NoFill)

    # シェイプのテキストフレームにテキストを追加する。
    text_frame = shape.getTextFrame()
    text_frame.setText("Aspose TextBox")
    portion = text_frame.getParagraphs().get_Item(0).getPortions().get_Item(0)

    # フォントファミリを設定する。
    font = FontData("Times New Roman")
    portion.getPortionFormat().setLatinFont(font)

    # 太字、斜体、下線、およびフォントサイズを設定する。
    portion.getPortionFormat().setFontBold(NullableBool.True_)
    portion.getPortionFormat().setFontItalic(NullableBool.True_)
    portion.getPortionFormat().setFontUnderline(TextUnderlineType.Single)
    portion.getPortionFormat().setFontHeight(25)

    # フォントの色を設定する。
    portion.getPortionFormat().getFillFormat().setFillType(FillType.Solid)
    portion.getPortionFormat().getFillFormat().getSolidFillColor().setColor(Color.BLUE)

    # プレゼンテーションを保存する。
    presentation.save("pptxFont.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()