Конвертировать слайды PowerPoint в PNG на Python

Обзор

В этой статье объясняется, как конвертировать презентации PowerPoint в изображения PNG с помощью Aspose.Slides for Python via Java. Вы можете загружать файлы PPT, PPTX и ODP, рендерить каждый слайд и сохранять его как отдельное изображение PNG.

Примеры также демонстрируют, как управлять размерами вывода с помощью коэффициентов масштабирования или точных ширины и высоты. Каждый пример при необходимости запускает виртуальную машину Java и освобождает ресурсы презентации и изображения после использования.

Конвертировать PowerPoint в PNG

  1. Загрузите входной файл с помощью класса Presentation.
  2. Получите слайды, используя Presentation.getSlides.
  3. Отрендерьте каждый слайд с помощью Slide.getImage.
  4. Сохраните каждое отрендеренное изображение с помощью ImageFormat.Png, затем освободите его ресурсы.

Следующий пример на Python экспортирует все слайды в их размере по умолчанию:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ImageFormat, Presentation

presentation = Presentation("presentation.pptx")
try:
    for index, slide in enumerate(presentation.getSlides(), start=1):
        slide_image = slide.getImage()
        try:
            slide_image.save(f"slide_{index}.png", ImageFormat.Png)
        finally:
            slide_image.dispose()
finally:
    presentation.dispose()

Конвертировать PowerPoint в PNG с пользовательским масштабом

Передайте горизонтальные и вертикальные коэффициенты масштабирования в Slide.getImage, чтобы увеличить или уменьшить размеры вывода. Например, слайд размером 720 × 540 пунктов, отрендеренный с коэффициентом масштабирования 2 по обоим осям, создаст изображение 1440 × 1080 пикселей.

Используйте одинаковые коэффициенты масштабирования, чтобы сохранить соотношение сторон слайда. Разные коэффициенты растягивают слайд по горизонтали или вертикали.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ImageFormat, Presentation

presentation = Presentation("presentation.pptx")
try:
    scale_x = 2.0
    scale_y = 2.0
    for index, slide in enumerate(presentation.getSlides(), start=1):
        slide_image = slide.getImage(scale_x, scale_y)
        try:
            slide_image.save(f"slide_scaled_{index}.png", ImageFormat.Png)
        finally:
            slide_image.dispose()
finally:
    presentation.dispose()

Конвертировать PowerPoint в PNG с пользовательским размером

Чтобы указать точные размеры в пикселях, передайте объект Java Dimension с требуемой шириной и высотой в Slide.getImage. Выбирайте размеры с тем же соотношением сторон, что и у исходного слайда, чтобы избежать искажения.

Следующий пример сохраняет каждый слайд как PNG‑изображение размером 960 × 720 пикселей:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ImageFormat, Presentation
from java.awt import Dimension

presentation = Presentation("presentation.pptx")
try:
    image_size = Dimension(960, 720)
    for index, slide in enumerate(presentation.getSlides(), start=1):
        slide_image = slide.getImage(image_size)
        try:
            slide_image.save(f"slide_sized_{index}.png", ImageFormat.Png)
        finally:
            slide_image.dispose()
finally:
    presentation.dispose()

FAQ

Могу ли я экспортировать отдельную форму, например диаграмму или изображение, вместо всего слайда?
Да. Aspose.Slides поддерживает создание миниатюр для отдельных фигур, которые можно сохранять как PNG‑изображения.

Могу ли я конвертировать презентации параллельно на сервере?
Используйте отдельный экземпляр презентации для каждого потока или процесса и уникальные пути вывода, чтобы файлы не перезаписывались. Не используйте один экземпляр презентации в нескольких потоках. См. Многопоточность.

Каковы ограничения trial‑версии при экспорте в PNG?
Режим оценки добавляет водяной знак к выходным изображениям и применяет другие ограничения. Примените лицензию, чтобы снять эти ограничения.