Operacje prezentacji low-code w Pythonie za pośrednictwem Java

Przegląd

API Aspose.Slides for Python via Java zapewnia statyczne klasy pomocnicze do typowych operacji na prezentacjach. Te pomocnice opakowują często używane przepływy pracy modelu obiektowego w skoncentrowane metody, dzięki czemu możesz konwertować lub scalać pliki, przetwarzać elementy prezentacji, zbierać kształty i usuwać nieużywaną zawartość przy mniejszej ilości kodu.

Pomocnice low-code są najbardziej przydatne, gdy operacja dotyczy całego pliku lub prezentacji i domyślny przepływ pracy spełnia Twoje wymagania. Użyj pełnego Aspose.Slides object model, gdy potrzebna jest szczegółowa kontrola nad poszczególnymi slajdami, masterami, układami, kształtami, ustawieniami eksportu lub relacjami między elementami prezentacji.

Poniższa tabela podsumowuje dostępne pomocnice:

Helper Use it for
Convert Konwertowanie prezentacji do innego formatu przy użyciu bezpośredniego wywołania plik-do-pliku.
Merger Łączenie pełnych plików prezentacji tego samego formatu.
ForEach Wykonywanie akcji dla każdego slajdu, kształtu, akapitu lub fragmentu tekstu.
Collect Pobieranie kształtów z całej prezentacji w celu powtarzalnego przetwarzania lub analizy.
Compress Usuwanie nieużywanych masterów i układów oraz zmniejszanie osadzonych danych czcionek.

Konwertowanie prezentacji

Użyj Convert.autoByExtension, gdy rozszerzenie pliku wyjściowego wystarczy do wybrania formatu eksportu. Metoda otwiera źródłową prezentację, określa wymaganą formatację na podstawie ścieżki wyjściowej i zapisuje wynik.

import jpype
import asposeslides

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

from asposeslides.api import Convert

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

Klasa Convert udostępnia także dedykowane metody dla wyjścia w formatach PDF, SVG, JPEG, PNG i TIFF. Użyj pełnego modelu obiektowego, gdy potrzebujesz przejrzeć lub zmodyfikować prezentację przed eksportem lub skonfigurować opcję eksportu, której nie udostępnia wybrana pomocnica. Zobacz Convert Presentation po szczegółowe przepływy pracy i opcje specyficzne dla formatu.

Scalanie prezentacji

Użyj Merger.process, aby połączyć pełne pliki prezentacji jednym wywołaniem. Prezentacje wejściowe muszą mieć ten sam format pliku.

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

Ta pomocnica jest odpowiednia, gdy wszystkie slajdy mają zostać dołączone do jednego wyniku bez indywidualnego wybierania lub mapowania. Użyj pełnego modelu obiektowego, gdy musisz scalać wybrane slajdy, zastosować docelowego mastera lub układ, zachować sekcje w sposób jawny lub dopasować różne rozmiary slajdów. Zobacz Merge Presentations w tych scenariuszach.

Iterowanie po elementach prezentacji

Klasa ForEach wywołuje funkcję zwrotną dla każdego żądanego typu elementu prezentacji. Unika zagnieżdżonych pętli kolekcji i jest wygodna przy inspekcji lub zmianach formatowania obejmujących całą prezentację.

Poniższy przykład używa ForEach.slide, ForEach.shape, ForEach.paragraph oraz ForEach.portion do inspekcji odpowiadających elementów:

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

Domyślnie, przegląd kształtów i tekstu w całej prezentacji obejmuje normalne, masterowe i układowe slajdy. Przeciążenia z parametrem includeNotes mogą również przetwarzać slajdy notatek. Użyj bezpośrednich pętli kolekcji, gdy istotny jest kolejność przeglądania, wczesne zakończenie, filtrowanie przed wywołaniem funkcji zwrotnej lub szczegółowa kontrola zależności rodzic-dziecko.

Zbieranie kształtów

Użyj Collect.shapes, gdy potrzebujesz kolekcji wszystkich kształtów w prezentacji, a nie funkcji zwrotnej dla każdego kształtu. Jest to przydatne, gdy ten sam zestaw będzie filtrowany, liczony lub przetwarzany wielokrotnie.

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

Użyj ForEach.shape zamiast tego, gdy każdy kształt może być obsłużony od razu i nie musisz zachować zebranego wyniku.

Kompresja zawartości prezentacji

Klasa Compress może usuwać nieużywane elementy strukturalne i zmniejszać osadzone dane czcionek:

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

Usuń nieużywane układy przed nieużywanymi masterami, aby master, który po czyszczeniu układów stanie się nieodwołany, również został usunięty. Zapisz zoptymalizowaną prezentację do nowego pliku, jeśli później będziesz potrzebować oryginalnych masterów, układów lub pełnych danych osadzonych czcionek. Po więcej szczegółów zobacz Slide Master oraz Embedded Font.

FAQ

Kiedy powinienem używać API low-code zamiast pełnego modelu obiektowego?

Używaj pomocniczych funkcji low-code, gdy standardowa operacja dotyczy całego pliku lub prezentacji i nie wymaga szczegółowej kontroli nad poszczególnymi elementami. Użyj pełnego modelu obiektowego, gdy musisz wybrać konkretne slajdy, kontrolować relacje master‑layout, przejrzeć stan pośredni lub skonfigurować zachowanie, które nie jest udostępnione przez pomocnicę.

Czy Merger może łączyć prezentacje w różnych formatach plików?

Nie. Merger.process wymaga, aby prezentacje wejściowe miały ten sam format. Najpierw przekształć pliki wejściowe do wspólnego formatu, na przykład przy użyciu Convert.autoByExtension, a następnie scali je.

Czy ForEach przetwarza slajdy master, układ i notatki?

ForEach.slide iteruje przez normalne slajdy prezentacji. Operacje ForEach.shape, ForEach.paragraph i ForEach.portion obejmują domyślnie normalne, masterowe i układowe slajdy. Użyj ich przeciążeń z parametrem includeNotes ustawionym na True, aby uwzględnić slajdy notatek.

Jaka jest różnica między ForEach.shape a Collect.shapes?

Użyj ForEach.shape, aby przetwarzać każdy kształt od razu za pomocą funkcji zwrotnej. Użyj Collect.shapes, gdy potrzebujesz iterowalnego wyniku, który może być zachowany, filtrowany, liczony lub przeglądany wielokrotnie.

Czy Compress zawsze zmniejsza rozmiar pliku prezentacji?

Nie zawsze. Wynik zależy od tego, czy prezentacja zawiera nieużywane układy, nieużywane mastery lub osadzone czcionki z nieużywanymi znakami. Jeśli żadna z tych rzeczy nie występuje, odpowiednie operacje Compress mogą nie zmniejszyć rozmiaru pliku.

Czy zmiany wprowadzone przez ForEach lub Compress są zapisywane automatycznie?

Nie. Te pomocnice działają na załadowanym w pamięci obiekcie Presentation. Po zmianie elementów w wywołaniu zwrotnym [ForEach] lub po wykonaniu Compress, wywołaj Presentation.save, aby zapisać wynik.

Powiązane artykuły