Konwertowanie PPT i PPTX do JPG w PHP

Wprowadzenie

Konwertowanie prezentacji PowerPoint i OpenDocument do obrazów JPG pomaga w udostępnianiu slajdów, optymalizacji wydajności oraz osadzaniu treści w witrynach internetowych lub aplikacjach. Aspose.Slides umożliwia przekształcenie plików PPTX, PPT i ODP w obrazy JPEG wysokiej jakości. Ten przewodnik wyjaśnia różne metody konwersji.

Dzięki tym funkcjom łatwo jest zaimplementować własny podgląd prezentacji i utworzyć miniaturę dla każdego slajdu. Może to być przydatne, jeśli chcesz chronić slajdy przed kopiowaniem lub przedstawić prezentację w trybie tylko do odczytu. Aspose.Slides pozwala konwertować całą prezentację lub wybrany slajd do formatów obrazów.

Konwertowanie PowerPoint PPT/PPTX do JPG

  1. Utwórz instancję typu Presentation.
  2. Pobierz obiekt slajdu typu Slide z kolekcji Presentation::getSlides().
  3. Utwórz miniaturę każdego slajdu, a następnie przekonwertuj ją na JPG. Metoda Slide::getImage(float scaleX, float scaleY) jest używana do uzyskania miniatury slajdu. Metodę getImage należy wywołać na wybranym slajdzie typu Slide, a skalowanie wynikowej miniatury przekazywane jest jako argumenty.
  4. Po uzyskaniu miniatury slajdu wywołaj metodę [IImage::save(String formatName, int imageFormat)](https://reference.aspose.com/slides/pl/php-java/aspose.slides/IImage#save(String formatName, int imageFormat)) na obiekcie miniatury. Przekaż nazwę pliku wyjściowego oraz format obrazu.
  $pres = new Presentation("PowerPoint-Presentation.pptx");
  try {
    foreach($pres->getSlides() as $sld) {
      # Tworzy obraz w pełnej skali
      $slideImage = $sld->getImage(1.0, 1.0);
      # Zapisuje obraz na dysku w formacie 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();
    }
  }

Konwertowanie PowerPoint PPT/PPTX do JPG z niestandardowymi wymiarami

Aby zmienić wymiary wynikowej miniatury i obrazu JPG, możesz ustawić wartości ScaleX i ScaleY, przekazując je do metod Slide::getImage(float scaleX, float scaleY):

  $pres = new Presentation("PowerPoint-Presentation.pptx");
  try {
    # Definiuje wymiary
    $desiredX = 1200;
    $desiredY = 800;
    # Pobiera przeskalowane wartości X i Y
    $ScaleX = 1.0 / $pres->getSlideSize()->getSize()->getWidth() * $desiredX;
    $ScaleY = 1.0 / $pres->getSlideSize()->getSize()->getHeight() * $desiredY;
    foreach($pres->getSlides() as $sld) {
      # Tworzy obraz w pełnej skali
      $slideImage = $sld->getImage($ScaleX, $ScaleY);
      # Zapisuje obraz na dysku w formacie 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();
    }
  }

Renderowanie komentarzy przy zapisywaniu slajdów jako obrazy

Aspose.Slides for PHP via Java udostępnia funkcję, która pozwala renderować komentarze na slajdach prezentacji podczas ich konwertowania na obrazy. Ten kod PHP demonstruje działanie:

  $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

Czy ta metoda obsługuje konwersję wsadową?

Tak, Aspose.Slides umożliwia konwersję wsadową wielu slajdów do JPG w jednej operacji.

Czy konwersja obsługuje SmartArt, wykresy i inne złożone obiekty?

Tak, Aspose.Slides renderuje całą zawartość, w tym SmartArt, wykresy, tabele, kształty i inne elementy. Dokładność renderowania może nieznacznie różnić się od PowerPoint, szczególnie przy użyciu niestandardowych lub brakujących czcionek.

Czy istnieją ograniczenia liczby slajdów, które można przetworzyć?

Aspose.Slides nie narzuca sztywnych limitów liczby slajdów, które można przetworzyć. Jednak przy dużych prezentacjach lub obrazach wysokiej rozdzielczości może wystąpić błąd braku pamięci.

Zobacz także

Zobacz inne opcje konwersji PPT/PPTX na obraz, takie jak: