Převod snímků PowerPoint do PNG v Pythonu

Přehled

Tento článek vysvětluje, jak převést prezentace PowerPoint na obrázky PNG pomocí Aspose.Slides pro Python přes Java. Můžete načíst soubory PPT, PPTX a ODP, vykreslit každou snímek a uložit jej jako samostatný obrázek PNG.
Příklady také ukazují, jak řídit výstupní rozměry pomocí faktorů měřítka nebo přesné šířky a výšky. Každý příklad spustí virtuální stroj Java, pokud je to potřeba, a po použití uvolní prostředky prezentace a obrázku.

Převod PowerPointu na PNG

  1. Načtěte vstupní soubor pomocí třídy Presentation.
  2. Získejte snímky pomocí Presentation.getSlides.
  3. Vykreslete každý snímek pomocí Slide.getImage.
  4. Uložte každý vykreslený obrázek pomocí ImageFormat.Png a poté uvolněte jeho prostředky.

Následující příklad v Pythonu exportuje všechny snímky v jejich výchozí velikosti:

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

Převod PowerPointu na PNG s vlastním měřítkem

Předejte horizontální a vertikální faktory měřítka metodě Slide.getImage, aby se zvýšily nebo snížily výstupní rozměry. Například snímek o velikosti 720 × 540 bodů vykreslený s faktorem měřítka 2 na obou osách vytvoří obrázek 1440 × 1080 pixelů.
Použijte stejné faktory měřítka pro zachování poměru stran snímku. Různé faktory snímek roztaží horizontálně nebo vertikálně.

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

Převod PowerPointu na PNG s vlastní velikostí

Pro určení přesných rozměrů v pixelech předáte objekt Java Dimension s požadovanou šířkou a výškou metodě Slide.getImage. Zvolte rozměry se stejným poměrem stran jako má původní snímek, aby nedošlo k deformaci.
Následující příklad ukládá každý snímek jako PNG obrázek o rozměrech 960 × 720 pixelů:

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

Často kladené otázky

Mohu exportovat jednotlivý tvar, například graf nebo obrázek, místo celého snímku?

Ano. Aspose.Slides podporuje generování miniatur pro jednotlivé tvary, které můžete uložit jako PNG obrázky.

Mohu převádět prezentace paralelně na serveru?

Používejte samostatnou instanci prezentace pro každý vlákný nebo proces a používejte jedinečné výstupní cesty, aby nedošlo k přepsání souborů. Nesdílejte instanci prezentace mezi vlákny. Viz Multithreading.

Jaká jsou omezení zkušební verze při exportu do PNG?

Režim hodnocení přidává vodoznak k výstupním obrázkům a uplatňuje další omezení. Použijte licenci k odstranění těchto omezení.