C++でプレゼンテーションのスライドサイズを変更する

PowerPoint プレゼンテーションのスライドサイズ

Aspose.Slides for C++ を使用すると、PowerPoint プレゼンテーションのスライドサイズまたはアスペクト比を変更できます。プレゼンテーションを印刷したり、画面にスライドを表示したりする場合は、スライドサイズまたはアスペクト比に注意する必要があります。

以下は最も一般的なスライドサイズとアスペクト比です。

  • Standard (4:3 アスペクト比)

    プレゼンテーションが比較的古いデバイスや画面で表示・閲覧される場合は、この設定を使用するとよいでしょう。

  • Widescreen (16:9 アスペクト比)

    プレゼンテーションが最新のプロジェクターやディスプレイで表示される場合は、この設定を使用するとよいでしょう。

1 つのプレゼンテーションで複数のスライドサイズ設定を使用することはできません。プレゼンテーションにスライドサイズを選択すると、その設定はすべてのスライドに適用されます。

プレゼンテーションに特別なスライドサイズを使用したい場合は、できるだけ早い段階で設定することを強くおすすめします。理想的には、コンテンツを追加する前のプレゼンテーション作成開始時、つまり最初にプレゼンテーションを設定するときに希望のスライドサイズを指定してください。これにより、スライドサイズの(将来的な)変更によって生じる問題を回避できます。

プレゼンテーションでスライドサイズを変更する

このサンプルコードは、C++ で Aspose.Slides を使用してプレゼンテーションのスライドサイズを変更する方法を示しています:

auto pres = System::MakeObject<Presentation>(u"pres-4x3-aspect-ratio.pptx");
pres->get_SlideSize()->SetSize(SlideSizeType::OnScreen16x9, SlideSizeScaleType::DoNotScale);
pres->Save(u"pres-4x3-aspect-ratio.pptx", SaveFormat::Pptx);

プレゼンテーションでカスタムスライドサイズを指定する

一般的なスライドサイズ(4:3 と 16:9)が作業に適さない場合、特定またはユニークなスライドサイズを使用することができます。たとえば、プレゼンテーションからフルサイズのスライドをカスタムページレイアウトで印刷したい場合や、特定の画面タイプでプレゼンテーションを表示したい場合は、カスタムサイズ設定が有益です。

このサンプルコードは、C++ で Aspose.Slides for C++ を使用してプレゼンテーションのカスタムスライドサイズを指定する方法を示しています:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
// A4 用紙サイズ
pres->get_SlideSize()->SetSize(780.0f, 540.0f, SlideSizeScaleType::DoNotScale);
pres->Save(u"pres-a4-slide-size.pptx", SaveFormat::Pptx);

サイズ変更後のスライドコンテンツの扱い

プレゼンテーションのスライドサイズを変更すると、スライドのコンテンツ(画像やオブジェクトなど)が歪むことがあります。既定では、オブジェクトは新しいスライドサイズに合わせて自動的にリサイズされます。ただし、プレゼンテーションのスライドサイズを変更する際に、Aspose.Slides がスライド上のコンテンツをどのように扱うかを決定する設定を指定できます。

目的に応じて、以下のいずれかの設定を使用できます。

  • DoNotScale

    スライド上のオブジェクトをリサイズしたくない場合は、この設定を使用します。

  • EnsureFit

    小さいスライドサイズに縮小したいが、すべてのオブジェクトがスライド内に収まるように Aspose.Slides にダウンスケールさせたい(コンテンツが失われるのを防ぐ)場合は、この設定を使用します。

  • Maximize

    大きいスライドサイズに拡大したいが、オブジェクトを新しいスライドサイズに比例させて拡大させたい場合は、この設定を使用します。

このサンプルコードは、プレゼンテーションのスライドサイズを変更する際に Maximize 設定を使用する方法を示しています:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
pres->get_SlideSize()->SetSize(SlideSizeType::Ledger, SlideSizeScaleType::Maximize);

FAQ

カスタムスライドサイズをインチ以外の単位(ポイントやミリメートルなど)で設定できますか?

はい。Aspose.Slides は内部でポイントを使用しており、1 ポイントは 1/72 インチに相当します。ミリメートルやセンチメートルなど任意の単位をポイントに換算し、その値でスライドの幅と高さを指定できます。

非常に大きなカスタムスライドサイズは、レンダリング時のパフォーマンスやメモリ使用量に影響しますか?

はい。ポイント単位でのスライド寸法が大きく、かつ高いレンダリングスケールを使用すると、メモリ消費が増加し、処理時間が長くなります。実用的なスライドサイズを目指し、必要な出力品質を得るためにのみレンダリングスケールを調整してください。

非標準のスライドサイズを 1 つ定義し、サイズが異なるプレゼンテーションのスライドをマージできますか?

サイズが異なる状態で merge presentations はできません。まず、どちらかのプレゼンテーションをサイズ合わせにリサイズします。スライドサイズ変更時には、SlideSizeScaleType オプションで既存コンテンツの扱いを選択できます。サイズを揃えた後、書式を保持したままスライドをマージできます。

個々のシェイプやスライドの特定領域のサムネイルを生成できますか?また、新しいスライドサイズを考慮しますか?

はい。Aspose.Slides は [entire slides](https://reference.aspose.com/slides/cpp/aspose.slides/slide/getimage/)だけでなく、[selected shapes](https://reference.aspose.com/slides/cpp/aspose.slides/shape/getimage/)のサムネイルもレンダリングできます。生成された画像は現在のスライドサイズとアスペクト比を反映し、フレーミングとジオメトリが一貫しています。