Operace s prezentacemi s nízkým kódem v Pythonu přes Java

Přehled

API Aspose.Slides for Python via Java poskytuje statické pomocné třídy pro běžné operace s prezentacemi. Tyto pomocníky zapouštějí často používané workflow objektového modelu do zaměřených metod, takže můžete převádět nebo slučovat soubory, zpracovávat prvky prezentace, sbírat tvary a odstraňovat nepoužívaný obsah s menším množstvím kódu.

Low‑code pomocníky jsou nejvíce užitečné, když se operace vztahuje na celý soubor nebo prezentaci a výchozí workflow odpovídá vašim požadavkům. Použijte plný Aspose.Slides objektový model, pokud potřebujete podrobnou kontrolu nad jednotlivými snímky, mistry, rozvrženími, tvary, nastavením exportu nebo vztahy mezi prvky prezentace.

Následující tabulka shrnuje dostupné pomocníky:

Pomocník Použít pro
Convert Převod prezentace do jiného formátu pomocí přímého volání soubor‑na‑soubor.
Merger Kombinování kompletních souborů prezentací stejného formátu.
ForEach Provedení akce pro každý snímek, tvar, odstavec nebo část textu.
Collect Získání tvarů z celé prezentace pro opakované zpracování nebo analýzu.
Compress Odstranění nepoužívaných mistrů a rozvržení a zmenšení vložených dat fontů.

Převod prezentace

Použijte Convert.autoByExtension, pokud je přípona výstupního souboru dostatečná pro výběr formátu exportu. Metoda otevře zdrojovou prezentaci, určí požadovaný formát z výstupní cesty a zapíše výsledek.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Convert

Convert.autoByExtension("input.pptx", "output.pdf")

Třída Convert také poskytuje specializované metody pro výstup PDF, SVG, JPEG, PNG a TIFF. Použijte plný objektový model, pokud potřebujete před exportem prezentaci zkontrolovat nebo upravit, nebo nastavit volbu exportu, která není v daném pomocníkovi vystavena. Viz Convert Presentation pro workflow a možnosti specifické pro formáty.

Sloučení prezentací

Použijte Merger.process pro kombinaci kompletních souborů prezentací jedním voláním. Vstupní prezentace musí mít stejný formát souboru.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Merger

input_files = jpype.JArray(jpype.JString)(["part-1.pptx", "part-2.pptx"])
Merger.process(input_files, "merged.pptx")

Tento pomocník je vhodný, když mají být všechny snímky připojeny k jednomu výsledku bez individuálního výběru nebo přemapování. Použijte plný objektový model, pokud potřebujete sloučit vybrané snímky, použít cílový mistr nebo rozvržení, explicitně zachovat sekce nebo sladit různé velikosti snímků. Viz Merge Presentations pro tyto scénáře.

Iterace přes prvky prezentace

Třída ForEach volá zpětný volání pro každý požadovaný typ prvku prezentace. Vyhýbá se vnořeným smyčkám sbírek a je pohodlná pro kontrolu nebo formátování na úrovni celé prezentace.

Následující příklad používá ForEach.slide, ForEach.shape, ForEach.paragraph a ForEach.portion ke kontrole odpovídajících prvků:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import ForEach, Presentation

def print_slide(slide, index):
    print(f"Slide {index}: {slide.getShapes().size()} shapes")

def print_shape(shape, slide, index):
    print(f"Shape {index} on {slide.getClass().getSimpleName()}: {shape.getName()}")

def print_paragraph(paragraph, slide, index):
    print(f"Paragraph {index} on {slide.getClass().getSimpleName()}: {paragraph.getText()}")

def print_portion(portion, paragraph, slide, index):
    print(f"Portion {index} on {slide.getClass().getSimpleName()}: {portion.getText()}")

presentation = Presentation("input.pptx")
try:
    ForEach.slide(presentation, print_slide)
    ForEach.shape(presentation, print_shape)
    ForEach.paragraph(presentation, print_paragraph)
    ForEach.portion(presentation, print_portion)
finally:
    presentation.dispose()

Ve výchozím nastavení zahrnuje procházení tvarů a textu napříč celé prezentací normální, mistr‑ a rozvržovací snímky. Přetížení s parametrem includeNotes může také zpracovat snímky poznámek. Použijte přímé smyčky sbírek, pokud je důležitý pořadí průchodu, předčasné ukončení, filtrování před voláním zpětného volání nebo detailní kontrola rodič‑dítě vztahu.

Sbírání tvarů

Použijte Collect.shapes, pokud potřebujete kolekci všech tvarů v prezentaci místo zpětného volání pro každý tvar. To je užitečné, když bude stejná sada filtrována, počítána nebo zpracována více než jednou.

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Collect, Presentation

presentation = Presentation("input.pptx")
try:
    shapes = Collect.shapes(presentation)

    for shape in shapes:
        print(f"{shape.getName()}: {shape.getClass().getSimpleName()}")
finally:
    presentation.dispose()

Použijte místo toho ForEach.shape, když může být každý tvar zpracován okamžitě a není potřeba uchovávat sesbíraný výsledek.

Komprese obsahu prezentace

Třída Compress může odstranit nepoužívané strukturální prvky a zmenšit vložená data fontů:

import jpype
import asposeslides

if not jpype.isJVMStarted():
    jpype.startJVM()

from asposeslides.api import Compress, Presentation, SaveFormat

presentation = Presentation("input.pptx")
try:
    Compress.removeUnusedLayoutSlides(presentation)
    Compress.removeUnusedMasterSlides(presentation)
    Compress.compressEmbeddedFonts(presentation)

    presentation.save("compressed.pptx", SaveFormat.Pptx)
finally:
    presentation.dispose()

Nejprve odstraňte nepoužívaná rozvržení, pak nepoužívané mistry, aby mohl být mistr, který se po úklidu rozvržení stane neodkazovaným, také odstraněn. Uložte optimalizovanou prezentaci do nového souboru, pokud můžete později potřebovat původní mistry, rozvržení nebo kompletní data vložených fontů. Více podrobností viz Slide Master a Embedded Font.

FAQ

Kdy bych měl použít low-code API místo plného objektového modelu?

Používejte low‑code pomocníky, když standardní operace platí pro celý soubor nebo prezentaci a nevyžaduje podrobnou kontrolu jednotlivých prvků. Použijte plný objektový model, pokud potřebujete vybrat konkrétní snímky, řídit vztahy mistr‑rozvržení, zkontrolovat mezistav nebo nastavit chování, které pomocník neodhaluje.

Může Merger kombinovat prezentace v různých formátech souborů?

Ne. Merger.process vyžaduje vstupní prezentace ve stejném formátu. Nejprve převeďte vstupní soubory do společného formátu, například pomocí Convert.autoByExtension, a poté sloučte převedené soubory.

Zpracovává ForEach mistry, rozvržení a snímky poznámek?

ForEach.slide iteruje přes normální snímky prezentace. Operace napříč celou prezentací ForEach.shape, ForEach.paragraph a ForEach.portion zahrnují ve výchozím nastavení normální, mistr‑ a rozvržovací snímky. Použijte jejich přetížení s includeNotes nastaveným na True, pokud chcete zahrnout i snímky poznámek.

Jaký je rozdíl mezi ForEach.shape a Collect.shapes?

Použijte ForEach.shape k okamžitému zpracování každého tvaru pomocí zpětného volání. Použijte Collect.shapes, když potřebujete iterovatelný výsledek, který lze uchovat, filtrovat, počítat nebo procházet vícekrát.

Zmenší Compress vždy velikost souboru prezentace?

Ne nutně. Výsledek závisí na tom, zda prezentace obsahuje nepoužívaná rozvržení, nepoužívané mistry nebo vložené fonty s nepoužívanými znaky. Pokud žádné z těchto prvků nejsou, odpovídající operace Compress nemusí soubor zmenšit.

Ukládají změny provedené pomocí ForEach nebo Compress automaticky?

Ne. Tito pomocníci pracují s načteným objektem Presentation v paměti. Po změně prvků v callbacku ForEach nebo po spuštění Compress zavolejte Presentation.save pro zápis výsledku.

Související články