PHPでPPTとPPTXをJPGに変換する

PowerPoint to JPG 変換について

Aspose.Slides API を使用すると、PowerPoint PPT または PPTX プレゼンテーションを JPG 画像に変換できます。PPT/PPTX を JPEG、PNG、SVG に変換することも可能です。この機能を利用すれば、独自のプレゼンテーションビューアを実装したり、各スライドのサムネイルを作成したりできます。プレゼンテーションスライドをコピーライトから保護したり、読み取り専用モードでデモンストレーションしたりする場合にも便利です。Aspose.Slides は、プレゼンテーション全体または特定のスライドを画像形式に変換できます。

[todo:image_alt_text

PowerPoint PPT/PPTX を JPG に変換する方法

PPT/PPTX を JPG に変換する手順は次のとおりです:

  1. Presentation 型のインスタンスを作成します。
  2. Presentation::getSlides() コレクションから Slide 型のスライドオブジェクトを取得します。
  3. 各スライドのサムネイルを作成し、JPG に変換します。サムネイル取得には Slide::getImage(float scaleX, float scaleY) メソッドを使用します。getImage メソッドは対象の Slide 型から呼び出し、結果のサムネイルのスケールを引数として渡します。
  4. スライドのサムネイルを取得したら、サムネイルオブジェクトから [IImage::save(String formatName, int imageFormat)](https://reference.aspose.com/slides/php-java/aspose.slides/IImage#save(String formatName, int imageFormat)) メソッドを呼び出します。ファイル名と画像形式を指定してください。
  $pres = new Presentation("PowerPoint-Presentation.pptx");
  try {
    foreach($pres->getSlides() as $sld) {
      # フルスケール画像を作成
      $slideImage = $sld->getImage(1.0, 1.0);
      # 画像を JPEG 形式でディスクに保存
      try {
        $slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

カスタマイズしたサイズで PowerPoint PPT/PPTX を JPG に変換する方法

生成されるサムネイルおよび JPG 画像のサイズを変更するには、Slide::getImage(float scaleX, float scaleY) メソッドに ScaleXScaleY の値を渡します:

  $pres = new Presentation("PowerPoint-Presentation.pptx");
  try {
    # 次元を定義
    $desiredX = 1200;
    $desiredY = 800;
    # X と Y のスケール済み値を取得
    $ScaleX = 1.0 / $pres->getSlideSize()->getSize()->getWidth() * $desiredX;
    $ScaleY = 1.0 / $pres->getSlideSize()->getSize()->getHeight() * $desiredY;
    foreach($pres->getSlides() as $sld) {
      # フルスケール画像を作成
      $slideImage = $sld->getImage($ScaleX, $ScaleY);
      # 画像を JPEG 形式でディスクに保存
      try {
        $slideImage->save(String->format("Slide_%d.jpg", $sld->getSlideNumber()), ImageFormat::Jpeg);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

スライドを画像として保存する際にコメントを描画する

Aspose.Slides for PHP via Java は、スライドを画像に変換する際にプレゼンテーションのコメントを描画できる機能を提供します。以下の PHP コードがその操作例です:

  $pres = new Presentation("presentation.pptx");
  try {
    $notesOptions = new NotesCommentsLayoutingOptions();
    $notesOptions->setNotesPosition(NotesPositions::BottomTruncated);
    $opts = new RenderingOptions();
    $opts->setSlidesLayoutOptions($notesOptions);
    foreach($pres->getSlides() as $sld) {
      $slideImage = $sld->getImage($opts, new Java("java.awt.Dimension", 740, 960));
      try {
        $slideImage->save(String->format("Slide_%d.png", $sld->getSlideNumber()));
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

FAQ

この方法はバッチ変換をサポートしていますか?

はい、Aspose.Slides は複数スライドを一括で JPG に変換するバッチ変換をサポートしています。

変換は SmartArt、チャート、その他の複雑なオブジェクトをサポートしていますか?

はい、Aspose.Slides は SmartArt、チャート、テーブル、シェイプなどすべてのコンテンツをレンダリングします。ただし、カスタム フォントや欠落フォントを使用した場合、PowerPoint と比較して若干の精度差が生じることがあります。

処理できるスライド数に制限はありますか?

Aspose.Slides 自体に厳格なスライド数の上限はありませんが、大規模なプレゼンテーションや高解像度画像を扱う際にメモリ不足エラーが発生する可能性があります。

See Also

PPT/PPTX を画像に変換する他のオプション: