Конвертировать слайды PowerPoint в PNG на Python
Обзор
В этой статье объясняется, как конвертировать презентации PowerPoint в изображения PNG с помощью Aspose.Slides for Python via Java. Вы можете загружать файлы PPT, PPTX и ODP, рендерить каждый слайд и сохранять его как отдельное изображение PNG.
Примеры также демонстрируют, как управлять размерами вывода с помощью коэффициентов масштабирования или точных ширины и высоты. Каждый пример при необходимости запускает виртуальную машину Java и освобождает ресурсы презентации и изображения после использования.
Конвертировать PowerPoint в PNG
- Загрузите входной файл с помощью класса Presentation.
- Получите слайды, используя Presentation.getSlides.
- Отрендерьте каждый слайд с помощью Slide.getImage.
- Сохраните каждое отрендеренное изображение с помощью 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?
Режим оценки добавляет водяной знак к выходным изображениям и применяет другие ограничения. Примените лицензию, чтобы снять эти ограничения.