在 PHP 中將 PPT 與 PPTX 轉換為 JPG

簡介

將 PowerPoint 與 OpenDocument 簡報轉換為 JPG 影像,可協助分享投影片、最佳化效能,並將內容嵌入網站或應用程式中。Aspose.Slides 允許您將 PPTX、PPT 與 ODP 檔案轉換為高品質的 JPEG 影像。本指南說明各種轉換方法。

使用這些功能,您可以輕鬆實作自己的簡報檢視器,並為每張投影片建立縮圖。如果需要防止投影片被複製或以唯讀模式展示簡報,這將相當有用。Aspose.Slides 可讓您將整個簡報或特定投影片轉換為影像格式。

將 PowerPoint PPT/PPTX 轉換為 JPG

以下為將 PPT/PPTX 轉換為 JPG 的步驟:

  1. 建立 Presentation 類型的執行個體。
  2. Presentation::getSlides() 集合取得 Slide 類型的投影片物件。
  3. 為每張投影片建立縮圖,然後將其轉換為 JPG。使用 Slide::getImage(float scaleX, float scaleY) 方法取得投影片的縮圖。必須從所需的 Slide 物件呼叫 getImage 方法,並將縮放比例傳入該方法。
  4. 取得投影片縮圖後,從縮圖物件呼叫 [IImage::save(String formatName, int imageFormat)](https://reference.aspose.com/slides/zh-hant/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 影像的尺寸,可透過將 ScaleXScaleY 值傳入 Slide::getImage(float scaleX, float scaleY) 方法來設定:

  $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();
    }
  }

常見問題

此方法是否支援批次轉換?

是的,Aspose.Slides 可在單一次操作中批次將多張投影片轉換為 JPG。

轉換是否支援 SmartArt、圖表及其他複雜物件?

是的,Aspose.Slides 會呈現所有內容,包括 SmartArt、圖表、表格、圖形等。但與 PowerPoint 相比,渲染精確度可能會因使用自訂或缺少的字型而略有差異。

處理的投影片數量是否有限制?

Aspose.Slides 本身對可處理的投影片數量沒有嚴格限制。然而,處理大型簡報或高解析度影像時,可能會遇到記憶體不足的錯誤。

另請參閱

其他將 PPT/PPTX 轉換為影像的選項包括: