Konwertuj PPT i PPTX do JPG w Pythonie
Wprowadzenie
Aspose.Slides for Python via Java pozwala konwertować prezentacje PowerPoint i OpenDocument (PPT, PPTX i ODP) na obrazy JPEG. Możesz eksportować każdy slajd lub wybrany slajd, aby tworzyć miniatury, budować przeglądarkę prezentacji lub osadzać podglądy slajdów w witrynie lub aplikacji.
Konwertuj PowerPoint PPT/PPTX do JPG
- Załaduj prezentację przy użyciu Presentation.
- Pobierz slajdy za pomocą getSlides.
- Wywołaj Slide.getImage z poziomymi i pionowymi współczynnikami skalowania, aby renderować każdy slajd.
- Zapisz każdy wyrenderowany obraz jako JPEG przy użyciu ImageFormat.Jpeg, a następnie zwolnij zasoby obrazu.
Note
Eksportowanie do JPG tworzy osobny obraz dla każdego slajdu. Zapisz wyrenderowany obraz zamiast zapisywać prezentację bezpośrednio w formacie obrazu.import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ImageFormat, Presentation
presentation = Presentation("presentation.pptx")
try:
for slide in presentation.getSlides():
slide_image = slide.getImage(1.0, 1.0)
try:
slide_image.save(f"Slide_{slide.getSlideNumber()}.jpg", ImageFormat.Jpeg)
finally:
slide_image.dispose()
finally:
presentation.dispose()
Konwertuj PowerPoint PPT/PPTX do JPG z niestandardowymi wymiarami
Oblicz poziome i pionowe współczynniki skalowania na podstawie żądanych wymiarów w pikselach oraz oryginalnego rozmiaru slajdu, a następnie przekaż je do Slide.getImage. W poniższym przykładzie docelowy rozmiar obrazu to 1200 × 800 dla każdego slajdu.
Użycie różnych współczynników skalowania może rozciągnąć slajd. Aby zachować jego proporcje, użyj tego samego współczynnika dla obu osi; wówczas uzyskana szerokość i wysokość będą odpowiadały oryginalnym proporcjom slajdu.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import ImageFormat, Presentation
presentation = Presentation("presentation.pptx")
try:
desired_width = 1200
desired_height = 800
slide_size = presentation.getSlideSize().getSize()
scale_x = desired_width / slide_size.getWidth()
scale_y = desired_height / slide_size.getHeight()
for slide in presentation.getSlides():
slide_image = slide.getImage(scale_x, scale_y)
try:
slide_image.save(f"Slide_{slide.getSlideNumber()}.jpg", ImageFormat.Jpeg)
finally:
slide_image.dispose()
finally:
presentation.dispose()
Renderuj komentarze przy zapisywaniu slajdów jako obrazy
Użyj NotesCommentsLayoutingOptions, aby skonfigurować notatki i komentarze, oraz zastosuj układ poprzez RenderingOptions.setSlidesLayoutOptions. Ten przykład umieszcza notatki na dole, obcinając te, które nie mieszczą się, oraz wyświetla komentarze po prawej stronie w obszarze o szerokości 200 pikseli. Zapisuje każdy wyrenderowany slajd jako obraz JPG.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import CommentsPositions, ImageFormat, NotesCommentsLayoutingOptions, NotesPositions, Presentation, RenderingOptions
from java.awt import Dimension
presentation = Presentation("presentation.pptx")
try:
layout_options = NotesCommentsLayoutingOptions()
layout_options.setNotesPosition(NotesPositions.BottomTruncated)
layout_options.setCommentsPosition(CommentsPositions.Right)
layout_options.setCommentsAreaWidth(200)
rendering_options = RenderingOptions()
rendering_options.setSlidesLayoutOptions(layout_options)
image_size = Dimension(740, 960)
for slide in presentation.getSlides():
slide_image = slide.getImage(rendering_options, image_size)
try:
slide_image.save(f"Slide_{slide.getSlideNumber()}.jpg", ImageFormat.Jpeg)
finally:
slide_image.dispose()
finally:
presentation.dispose()
FAQ
Czy mogę konwertować wiele slajdów lub prezentacji do JPG?
Tak. Przykłady iterują przez wszystkie slajdy i zapisują po jednym pliku JPG dla każdego slajdu. Aby przetworzyć wiele prezentacji, powtórz konwersję dla każdego pliku wejściowego i użyj oddzielnych folderów wyjściowych lub unikalnych nazw plików, aby uniknąć nadpisywania obrazów.
Czy wykresy, SmartArt, tabele i kształty są uwzględniane w obrazach?
Te obiekty są renderowane jako część slajdu. Udostępnij czcionki używane w prezentacji w środowisku konwersji, aby zredukować różnice spowodowane podstawianiem czcionek.
Jak mogę zmniejszyć zużycie pamięci przy eksportowaniu dużych prezentacji?
Przetwarzaj obrazy pojedynczo, zwalniając każdy obraz po jego zapisaniu, i unikaj niepotrzebnie dużych wymiarów wyjściowych. Wymagania pamięciowe zależą od zawartości slajdu i rozmiaru obrazu.