Конвертировать PPT и PPTX в JPG на Python
Введение
Aspose.Slides for Python via Java позволяет конвертировать презентации PowerPoint и OpenDocument (PPT, PPTX и ODP) в изображения JPEG. Вы можете экспортировать каждый слайд или выбранный слайд, чтобы создавать миниатюры, создавать просмотрщик презентаций или встраивать предварительные просмотры слайдов в веб‑сайт или приложение.
Конвертировать PowerPoint PPT/PPTX в JPG
- Загрузите презентацию с помощью Presentation.
- Получите слайды, используя getSlides.
- Вызовите Slide.getImage с горизонтальными и вертикальными коэффициентами масштабирования, чтобы отрисовать каждый слайд.
- Сохраните каждое отрисованное изображение в формате JPEG с помощью ImageFormat.Jpeg, затем освободите ресурсы изображения.
Note
Экспорт в JPG создает отдельное изображение для каждого слайда. Сохраните отрисованное изображение, а не сохраняйте презентацию напрямую в формат изображения.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()
Конвертировать PowerPoint PPT/PPTX в JPG с пользовательскими размерами
Вычислите горизонтальные и вертикальные коэффициенты масштабирования на основе требуемых размеров в пикселях и исходного размера слайда, затем передайте их в Slide.getImage. В следующем примере цель состоит в получении изображения размером 1200 × 800 пикселей для каждого слайда.
Использование разных коэффициентов масштабирования может растянуть слайд. Чтобы сохранить его пропорции, используйте одинаковый коэффициент масштабирования для обеих осей; тогда полученная ширина и высота будут соответствовать исходным пропорциям слайда.
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()
Отрисовка комментариев при сохранении слайдов как изображений
Используйте NotesCommentsLayoutingOptions для настройки заметок и комментариев и примените макет через RenderingOptions.setSlidesLayoutOptions. В этом примере заметки размещаются внизу, обрезая те, которые не помещаются, а комментарии отображаются справа в области шириной 200 пикселей. Каждый отрисованный слайд сохраняется как изображение 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()
Часто задаваемые вопросы
Могу ли я конвертировать несколько слайдов или презентаций в JPG?
Да. В примерах происходит цикл по всем слайдам и сохраняется один JPG на каждый слайд. Чтобы обработать несколько презентаций, повторите конверсию для каждого входного файла и используйте отдельные папки вывода или уникальные имена файлов, чтобы избежать перезаписи изображений.
Включены ли в изображения диаграммы, SmartArt, таблицы и фигуры?
Эти объекты отрисовываются как часть слайда. Обеспечьте наличие шрифтов, используемых в презентации, в среде конвертации, чтобы уменьшить различия, вызванные заменой шрифтов.
Как можно уменьшить потребление памяти при экспорте больших презентаций?
Обрабатывайте изображения по одному, освобождая каждое изображение после его сохранения, и избегайте излишне больших размеров вывода. Требования к памяти зависят от содержимого слайда и размера изображения.