Javaでプレゼンテーションスライドにアクセス
Aspose.Slides では、スライドに 2 つの方法でアクセスできます:インデックスによる方法と ID による方法です。
インデックスでスライドへアクセス
プレゼンテーション内のすべてのスライドは、スライドの位置に基づいて 0 から始まる数値で配置されます。最初のスライドはインデックス 0 でアクセスでき、2 番目のスライドはインデックス 1 でアクセスできます。以下同様です。
The Presentation クラスはプレゼンテーション ファイルを表し、すべてのスライドを ISlideCollection コレクション(ISlide オブジェクトのコレクション)として公開します。この Java コードはインデックスでスライドにアクセスする方法を示しています:
// プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します
Presentation pres = new Presentation("demo.pptx");
try {
// スライド インデックスを使用してスライドにアクセスします
ISlide slide = pres.getSlides().get_Item(0);
} finally {
pres.dispose();
}
ID でスライドへアクセス
プレゼンテーション内の各スライドには一意の ID が割り当てられています。その ID を対象にするには、Presentation クラスが公開している getSlideById メソッドを使用できます。この Java コードは有効なスライド ID を指定し、getSlideById メソッドでスライドにアクセスする方法を示しています:
// プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します
Presentation pres = new Presentation("demo.pptx");
try {
// スライド ID を取得します
int id = (int) pres.getSlides().get_Item(0).getSlideId();
// ID を使用してスライドにアクセスします
IBaseSlide slide = pres.getSlideById(id);
} finally {
pres.dispose();
}
スライドの位置を変更
Aspose.Slides ではスライドの位置を変更できます。たとえば、最初のスライドを 2 番目のスライドにすることができます。
- Presentation クラスのインスタンスを作成します。
- インデックスで、位置を変更したいスライドの参照を取得します
- setSlideNumber プロパティを使用してスライドの新しい位置を設定します。
- 変更されたプレゼンテーションを保存します。
この Java コードは、位置 1 のスライドが位置 2 に移動する操作を示しています:
// プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します
Presentation pres = new Presentation("Presentation.pptx");
try {
// 位置を変更するスライドを取得します
ISlide sld = pres.getSlides().get_Item(0);
// スライドの新しい位置を設定します
sld.setSlideNumber(2);
// 変更されたプレゼンテーションを保存します
pres.save("helloworld_Pos.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
最初のスライドが 2 番目になり、2 番目のスライドが 1 番目になりました。スライドの位置を変更すると、他のスライドは自動的に調整されます。
スライド番号の設定
Presentation クラスが公開している setFirstSlideNumber プロパティを使用すると、プレゼンテーションの最初のスライドに新しい番号を指定できます。この操作により、他のスライド番号が再計算されます。
- Presentation クラスのインスタンスを作成します。
- スライド番号を取得します。
- スライド番号を設定します。
- 変更されたプレゼンテーションを保存します。
この Java コードは、最初のスライド番号を 10 に設定する操作を示しています:
// プレゼンテーション ファイルを表す Presentation オブジェクトをインスタンス化します
Presentation pres = new Presentation("HelloWorld.pptx");
try {
// スライド番号を取得します
int firstSlideNumber = pres.getFirstSlideNumber();
// スライド番号を設定します
pres.setFirstSlideNumber(10);
// 変更されたプレゼンテーションを保存します
pres.save("Set_Slide_Number_out.pptx", SaveFormat.Pptx);
} finally {
pres.dispose();
}
最初のスライドをスキップしたい場合は、2 番目のスライドから番号付けを開始し(最初のスライドの番号は非表示に)次のように設定できます:
Presentation presentation = new Presentation();
try {
ILayoutSlide layoutSlide = presentation.getLayoutSlides().getByType(SlideLayoutType.Blank);
presentation.getSlides().addEmptySlide(layoutSlide);
presentation.getSlides().addEmptySlide(layoutSlide);
presentation.getSlides().addEmptySlide(layoutSlide);
// 最初のプレゼンテーションスライドの番号を設定します
presentation.setFirstSlideNumber(0);
// すべてのスライドにスライド番号を表示します
presentation.getHeaderFooterManager().setAllSlideNumbersVisibility(true);
// 最初のスライドのスライド番号を非表示にします
presentation.getSlides().get_Item(0).getHeaderFooterManager().setSlideNumberVisibility(false);
// 変更されたプレゼンテーションを保存します
presentation.save("output.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
よくある質問
ユーザーが見るスライド番号はコレクションの 0 ベース インデックスと一致しますか?
スライドに表示される番号は任意の値(例: 10)から開始でき、インデックスと一致する必要はありません。この関係はプレゼンテーションの first slide number 設定によって制御されます。
非表示スライドはインデックスに影響しますか?
はい。非表示スライドはコレクションに残り、インデックス算出に含まれます。「非表示」は表示上の状態を指すもので、コレクション内での位置には影響しません。
他のスライドが追加または削除されたときに、スライドのインデックスは変わりますか?
はい。インデックスは常にスライドの現在の順序を反映し、挿入、削除、移動操作が行われるたびに再計算されます。