Převod PPT a PPTX na JPG v Pythonu

Úvod

Aspose.Slides pro Python přes Java vám umožňuje převádět prezentace PowerPoint a OpenDocument (PPT, PPTX a ODP) na obrázky JPEG. Můžete exportovat každý snímek nebo vybraný snímek pro vytvoření náhledů, postavit prohlížeč prezentací nebo vložit náhledy snímků na webové stránky nebo do aplikace.

Převod PowerPoint PPT/PPTX na JPG

  1. Načtěte prezentaci pomocí Presentation.
  2. Získejte snímky pomocí getSlides.
  3. Vyvolejte Slide.getImage s horizontálními a vertikálními faktory měřítka pro vykreslení každého snímku.
  4. Uložte každý vykreslený obrázek jako JPEG pomocí ImageFormat.Jpeg, poté uvolněte zdroje obrázku.
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()

Převod PowerPoint PPT/PPTX na JPG s vlastním rozměrem

Vypočítejte horizontální a vertikální faktory měřítka z požadovaných rozměrů v pixelech a původní velikosti snímku a poté je předáte metodě Slide.getImage. Následující příklad cílí na obrázek o rozměrech 1200 × 800 pro každý snímek.

Použití různých faktorů měřítka může snímek natáhnout. Pro zachování poměru stran použijte stejný faktor měřítka pro obě osy; výsledná šířka a výška pak budou odpovídat původnímu poměru snímku.

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

Vykreslení komentářů při ukládání snímků jako obrázků

Použijte NotesCommentsLayoutingOptions a aplikujte rozvržení pomocí RenderingOptions.setSlidesLayoutOptions. Tento příklad umisťuje poznámky dolů, ořízne poznámky, které se nevejdou, a zobrazuje komentáře vpravo v oblasti široké 200 pixelů. Ukládá každý vykreslený snímek jako obrázek 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()

Často kladené otázky

Mohu převést více snímků nebo prezentací na JPG?

Ano. Příklady procházejí všechny snímky a ukládají jeden JPG pro každý snímek. Pro zpracování více prezentací opakujte převod pro každý vstupní soubor a použijte samostatné výstupní složky nebo jedinečná názvy souborů, aby nedošlo k přepsání obrázků.

Jsou v obrázcích zahrnuty grafy, SmartArt, tabulky a tvary?

Tyto objekty jsou vykresleny jako součást snímku. Zajistěte, aby písma použité v prezentaci byla dostupná v převodním prostředí, aby se snížily rozdíly způsobené substitucí písma.

Jak mohu snížit spotřebu paměti při exportu velkých prezentací?

Zpracovávejte obrázky po jednom, po uložení uvolněte každý obrázek a vyhněte se zbytečně velkým výstupním rozměrům. Požadavky na paměť závisí na obsahu snímku a velikosti obrázku.

Viz také