Python でプレゼンテーション スライドにアクセス

概要

この記事では、Aspose.Slides を使用してプレゼンテーションのスライドにアクセスし管理する方法を説明します。スライド コレクションからゼロベースのインデックスでスライドを取得する方法と、getSlideById メソッドを使用して一意の ID でスライドにアクセスする方法を示します。

また、setSlideNumber メソッドを使用してスライドの位置を変更する方法や、setFirstSlideNumber メソッドでプレゼンテーションの開始スライド番号を定義する方法も学べます。例では、プレゼンテーションの読み込み、スライド参照の取得、スライド順序や番号付けの更新、変更後のプレゼンテーションの保存を示しています。

インデックスでスライドにアクセスする方法

プレゼンテーション内のすべてのスライドは、スライド位置に基づいて数値で並べられ、0 から始まります。最初のスライドはインデックス 0 でアクセスでき、2 番目のスライドはインデックス 1 でアクセスできます。以下同様です。

Presentation クラスはプレゼンテーション ファイルを表し、すべてのスライドを SlideCollection (つまり Slide オブジェクトのコレクション) として公開します。この Python コードはインデックスを使用してスライドにアクセスする方法を示しています。

import jpype
import asposeslides

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

from asposeslides.api import Presentation

# プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します。
presentation = Presentation("demo.pptx")
try:
    # インデックスを使用してスライドにアクセスします。
    slide = presentation.getSlides().get_Item(0)
finally:
    presentation.dispose()

ID でスライドにアクセスする方法

プレゼンテーション内の各スライドには一意の ID が割り当てられています。Presentation クラスが公開する getSlideById メソッドを使用してその ID を指定できます。この Python コードは有効なスライド ID を指定し、getSlideById メソッドでスライドにアクセスする方法を示しています。

import jpype
import asposeslides

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

from asposeslides.api import Presentation

# プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します。
presentation = Presentation("demo.pptx")
try:
    # スライド ID を取得します。
    slide_id = presentation.getSlides().get_Item(0).getSlideId()

    # ID を使用してスライドにアクセスします。
    slide = presentation.getSlideById(slide_id)
finally:
    presentation.dispose()

スライドの位置を変更する

Aspose.Slides を使用すると、スライドの位置を変更できます。たとえば、最初のスライドを 2 番目にすることができます。

  1. Presentation クラスのインスタンスを作成します。
  2. 位置を変更したいスライドをインデックスで取得します。
  3. setSlideNumber メソッドでスライドの新しい位置を設定します。
  4. 変更されたプレゼンテーションを保存します。

この Python コードは、位置 1 のスライドを位置 2 に移動する操作を示しています。

import jpype
import asposeslides

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

from asposeslides.api import Presentation, SaveFormat

# プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します。
presentation = Presentation("Presentation.pptx")
try:
    # 位置が変更されるスライドを取得します。
    slide = presentation.getSlides().get_Item(0)

    # スライドの新しい位置を設定します。
    slide.setSlideNumber(2)

    # 変更されたプレゼンテーションを保存します。
    presentation.save("helloworld_Pos.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

最初のスライドが 2 番目になり、2 番目のスライドが最初になりました。スライドの位置を変更すると、他のスライドは自動的に調整されます。

スライド番号を設定する

Presentation クラスが提供する setFirstSlideNumber メソッドを使用すると、プレゼンテーションの最初のスライドに新しい番号を指定できます。この操作により、他のスライド番号も再計算されます。

  1. Presentation クラスのインスタンスを作成します。
  2. スライド番号を取得します。
  3. スライド番号を設定します。
  4. 変更されたプレゼンテーションを保存します。

この Python コードは、最初のスライド番号を 10 に設定する操作を示しています。

import jpype
import asposeslides

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

from asposeslides.api import Presentation, SaveFormat

# プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します。
presentation = Presentation("HelloWorld.pptx")
try:
    # スライド番号を取得します。
    first_slide_number = presentation.getFirstSlideNumber()

    # スライド番号を設定します。
    presentation.setFirstSlideNumber(10)

    # 変更されたプレゼンテーションを保存します。
    presentation.save("Set_Slide_Number_out.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

最初のスライドをスキップしたい場合は、2 番目のスライドから番号付けを開始し(最初のスライドの番号表示を非表示に)次のようにします。

import jpype
import asposeslides

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

from asposeslides.api import Presentation, SaveFormat, SlideLayoutType

presentation = Presentation()
try:
    layout_slide = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank)
    presentation.getSlides().addEmptySlide(layout_slide)
    presentation.getSlides().addEmptySlide(layout_slide)
    presentation.getSlides().addEmptySlide(layout_slide)

    # 最初のプレゼンテーション スライドの番号を設定します。
    presentation.setFirstSlideNumber(0)

    # すべてのスライドにスライド番号を表示します。
    presentation.getHeaderFooterManager().setAllSlideNumbersVisibility(True)

    # 最初のスライドのスライド番号を非表示にします。
    presentation.getSlides().get_Item(0).getHeaderFooterManager().setSlideNumberVisibility(False)

    # 変更されたプレゼンテーションを保存します。
    presentation.save("output.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

FAQ

ユーザーが見るスライド番号はコレクションのゼロベースインデックスと一致しますか?

スライドに表示される番号は任意の値(例: 10)から開始でき、インデックスと一致する必要はありません。関係はプレゼンテーションの first slide number 設定で制御されます。

非表示スライドはインデックスに影響しますか?

はい。非表示スライドはコレクションに残り、インデックスの計算に含まれます。「非表示」は表示上の状態を指し、コレクション内の位置には影響しません。

他のスライドが追加または削除されたときにスライドのインデックスは変わりますか?

はい。インデックスは常に現在のスライド順序を反映し、挿入、削除、移動操作が行われるたびに再計算されます。