Converter PPT e PPTX para JPG em Python

Introdução

Aspose.Slides for Python via Java permite converter apresentações PowerPoint e OpenDocument (PPT, PPTX e ODP) em imagens JPEG. Você pode exportar cada slide ou um slide selecionado para criar miniaturas, construir um visualizador de apresentações ou incorporar pré‑visualizações de slides em um site ou aplicativo.

Converter PowerPoint PPT/PPTX para JPG

  1. Carregue a apresentação com Presentation.
  2. Recupere os slides usando getSlides.
  3. Chame Slide.getImage com fatores de escala horizontal e vertical para renderizar cada slide.
  4. Salve cada imagem renderizada como JPEG usando ImageFormat.Jpeg, e então libere os recursos da imagem.
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()

Converter PowerPoint PPT/PPTX para JPG com Dimensões Personalizadas

Calcule os fatores de escala horizontal e vertical a partir das dimensões em pixels desejadas e do tamanho original do slide, e então passe‑os para Slide.getImage. O exemplo a seguir visa uma imagem de 1200 × 800 para cada slide.

Usar fatores de escala diferentes pode esticar o slide. Para preservar sua proporção, use o mesmo fator de escala para ambos os eixos; a largura e altura resultantes seguirão então as proporções originais do slide.

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()

Renderizar Comentários ao Salvar Slides como Imagens

Use NotesCommentsLayoutingOptions para configurar notas e comentários, e aplique o layout através de RenderingOptions.setSlidesLayoutOptions. Este exemplo posiciona as notas na parte inferior, truncando notas que não cabem, e exibe os comentários à direita em uma área de 200 pixels de largura. Ele salva cada slide renderizado como uma imagem 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

Posso converter múltiplos slides ou apresentações para JPG?

Sim. Os exemplos percorrem todos os slides e salvam um JPG por slide. Para processar várias apresentações, repita a conversão para cada arquivo de entrada e use pastas de saída separadas ou nomes de arquivos exclusivos para evitar sobrescrever as imagens.

Gráficos, SmartArt, tabelas e formas são incluídos nas imagens?

Esses objetos são renderizados como parte do slide. Disponibilize as fontes usadas na apresentação no ambiente de conversão para reduzir diferenças causadas por substituição de fontes.

Como posso reduzir o uso de memória ao exportar apresentações grandes?

Processar as imagens uma de cada vez, liberar cada imagem após salvá‑la e evitar dimensões de saída desnecessariamente grandes. Os requisitos de memória dependem do conteúdo do slide e do tamanho da imagem.

Veja Também