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

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

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

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

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

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

  • ワイドスクリーン (16:9 アスペクト比)

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

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

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

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

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

  $pres = new Presentation("pres-4x3-aspect-ratio.pptx");
  try {
    $pres->getSlideSize()->setSize(SlideSizeType::OnScreen16x9, SlideSizeScaleType::DoNotScale);
    $pres->save("pres-4x3-aspect-ratio.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

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

一般的なスライドサイズ(4:3 および 16:9)が目的に合わない場合、特定またはユニークなスライドサイズを使用することを検討できます。たとえば、カスタムページレイアウトでフルサイズのスライドを印刷する場合や、特定の画面タイプでプレゼンテーションを表示する場合などです。

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

  $pres = new Presentation("pres.pptx");
  try {
    $pres->getSlideSize()->setSize(780, 540, SlideSizeScaleType::DoNotScale);// A4 用紙サイズ

    $pres->save("pres-a4-slide-size.pptx", SaveFormat::Pptx);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

サイズ変更後のスライドコンテンツの処理

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

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

  • DoNotScale

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

  • EnsureFit

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

  • Maximize

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

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

  $pres = new Presentation("pres.pptx");
  try {
    $pres->getSlideSize()->setSize(SlideSizeType::Ledger, SlideSizeScaleType::Maximize);
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

FAQ

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

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

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

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

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

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

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

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