Low-Code-Präsentationsoperationen in Java
Übersicht
Das Paket com.aspose.slides stellt statische Hilfsklassen für gängige Vorgänge mit Präsentationen bereit. Diese Helfer kapseln häufig genutzte Objektmodell‑Workflows in fokussierten Methoden, sodass Sie Dateien konvertieren oder zusammenführen, Präsentationselemente verarbeiten, Shapes sammeln und ungenutzten Inhalt mit weniger Code entfernen können.
Low‑Code‑Helfer sind am nützlichsten, wenn der Vorgang auf eine gesamte Datei oder Präsentation angewendet wird und der Standard‑Workflow Ihren Anforderungen entspricht. Verwenden Sie das vollständige Aspose.Slides‑Objektmodell, wenn Sie feinkörnige Kontrolle über einzelne Folien, Master, Layouts, Shapes, Export‑Einstellungen oder Beziehungen zwischen Präsentationselementen benötigen.
Die folgende Tabelle fasst die verfügbaren Helfer zusammen:
| Helfer | Verwendung für |
|---|---|
| Convert | Konvertieren einer Präsentation in ein anderes Format mit einem direkten Datei‑zu‑Datei‑Aufruf. |
| Merger | Zusammenführen kompletter Präsentationsdateien desselben Formats. |
| ForEach | Ausführen einer Aktion für jede Folie, jedes Shape, jeden Absatz oder jeden Textanteil. |
| Collect | Abrufen von Shapes aus der gesamten Präsentation für wiederholte Verarbeitung oder Analyse. |
| Compress | Entfernen ungenutzter Master und Layouts sowie Reduzierung eingebetteter Schriftartdaten. |
Eine Präsentation konvertieren
Verwenden Sie Convert.autoByExtension, wenn die Dateierweiterung des Ausgabepfads ausreicht, um das Exportformat zu bestimmen. Die Methode öffnet die Quellpräsentation, ermittelt das erforderliche Format aus dem Ausgabepfad und schreibt das Ergebnis.
import com.aspose.slides.Convert;
Convert.autoByExtension("input.pptx", "output.pdf");
Die Klasse Convert bietet zudem dedizierte Methoden für PDF, SVG, JPEG, PNG und TIFF. Verwenden Sie das vollständige Objektmodell, wenn Sie die Präsentation vor dem Export prüfen oder ändern oder eine Exportoption konfigurieren müssen, die vom ausgewählten Helfer nicht bereitgestellt wird. Siehe Convert Presentation für format‑spezifische Workflows und Optionen.
Präsentationen zusammenführen
Verwenden Sie Merger.process, um komplette Präsentationsdateien mit einem Aufruf zu kombinieren. Die Eingabedateien müssen dasselbe Dateiformat besitzen.
import com.aspose.slides.Merger;
String[] inputFiles = { "part-1.pptx", "part-2.pptx" };
Merger.process(inputFiles, "merged.pptx");
Der Helfer ist geeignet, wenn alle Folien zu einem Ergebnis hinzugefügt werden sollen, ohne sie einzeln auswählen oder neu zuzuordnen. Nutzen Sie das vollständige Objektmodell, wenn Sie ausgewählte Folien zusammenführen, einen Ziel‑Master oder ein Ziel‑Layout anwenden, Abschnitte explizit erhalten oder unterschiedliche Foliengrößen abgleichen müssen. Siehe Merge Presentations für diese Szenarien.
Durch Präsentationselemente iterieren
Die Klasse ForEach ruft für jeden angeforderten Typ von Präsentationselement einen Callback auf. Sie vermeidet verschachtelte Schleifen über Sammlungen und ist praktisch für die prüfungsgleiche Inspektion oder Formatierungsänderungen in der gesamten Präsentation.
Das folgende Beispiel verwendet ForEach.slide, ForEach.shape, ForEach.paragraph und ForEach.portion, um die entsprechenden Elemente zu inspizieren:
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
ForEach.slide(presentation, (slide, index) -> {
System.out.println(String.format("Slide %d: %d shapes", index, slide.getShapes().size()));
});
ForEach.shape(presentation, (shape, slide, index) -> {
System.out.println(String.format("Shape %d on %s: %s", index, slide.getClass().getSimpleName(), shape.getName()));
});
ForEach.paragraph(presentation, (paragraph, slide, index) -> {
System.out.println(String.format("Paragraph %d on %s: %s", index, slide.getClass().getSimpleName(), paragraph.getText()));
});
ForEach.portion(presentation, (portion, paragraph, slide, index) -> {
System.out.println(String.format("Portion %d on %s: %s", index, slide.getClass().getSimpleName(), portion.getText()));
});
} finally {
presentation.dispose();
}
Standardmäßig umfasst die traversal über Shapes und Text in der gesamten Präsentation normale, Master‑ und Layout‑Folien. Überladungen mit einem includeNotes‑Parameter können zudem Notizfolien verarbeiten. Verwenden Sie direkte Sammlungs‑Schleifen, wenn die Durchlaufreihenfolge, ein vorzeitiger Abbruch, Filterung vor dem Callback‑Aufruf oder eine detaillierte Eltern‑Kind‑Steuerung wichtig sind.
Shapes sammeln
Verwenden Sie Collect.shapes, wenn Sie eine Sammlung aller Shapes in einer Präsentation benötigen, anstatt für jedes Shape einen Callback zu erhalten. Dies ist nützlich, wenn dieselbe Menge mehrfach gefiltert, gezählt oder verarbeitet werden soll.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
Iterable<Shape> shapes = Collect.shapes(presentation);
for (Shape shape : shapes) {
System.out.println(String.format("%s: %s", shape.getName(), shape.getClass().getSimpleName()));
}
} finally {
presentation.dispose();
}
Verwenden Sie stattdessen ForEach.shape, wenn jedes Shape sofort verarbeitet werden kann und Sie das gesammelte Ergebnis nicht behalten müssen.
Präsentationsinhalt komprimieren
Die Klasse Compress kann ungenutzte Strukturelemente entfernen und eingebettete Schriftartdaten reduzieren:
- Compress.removeUnusedLayoutSlides entfernt Layout‑Folien, auf die keine normale Folie verweist.
- Compress.removeUnusedMasterSlides entfernt Master‑Folien, die nicht mehr verwendet werden.
- Compress.compressEmbeddedFonts entfernt ungenutzte Zeichen aus eingebetteten Schriften.
import com.aspose.slides.*;
Presentation presentation = new Presentation("input.pptx");
try {
Compress.removeUnusedLayoutSlides(presentation);
Compress.removeUnusedMasterSlides(presentation);
Compress.compressEmbeddedFonts(presentation);
presentation.save("compressed.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Entfernen Sie zuerst ungenutzte Layouts, bevor Sie ungenutzte Master entfernen, damit ein Master, der nach der Layout‑Bereinigung nicht mehr referenziert wird, ebenfalls entfernt werden kann. Speichern Sie die optimierte Präsentation in einer neuen Datei, falls Sie die ursprünglichen Master, Layouts oder die vollständigen eingebetteten Schriftartdaten später noch benötigen. Weitere Details finden Sie unter Slide Master und Embedded Font.
FAQ
Wann sollte ich die Low‑Code‑API anstelle des vollständigen Objektmodells verwenden?
Verwenden Sie Low‑Code‑Helfer, wenn ein Standardvorgang auf eine komplette Datei oder Präsentation angewendet wird und keine detaillierte Kontrolle über einzelne Elemente erforderlich ist. Nutzen Sie das vollständige Objektmodell, wenn Sie bestimmte Folien auswählen, Beziehungen zwischen Master und Layout steuern, einen Zwischenstatus prüfen oder ein Verhalten konfigurieren müssen, das der Helfer nicht bereitstellt.
Kann Merger Präsentationen in unterschiedlichen Dateiformaten kombinieren?
Nein. Merger.process verlangt Eingabedateien im gleichen Format. Konvertieren Sie die Eingabedateien zuerst in ein gemeinsames Format, beispielsweise mit Convert.autoByExtension, und führen Sie anschließend die konvertierten Dateien zusammen.
Verarbeitet ForEach Master‑, Layout‑ und Notizfolien?
ForEach.slide iteriert über normale Präsentationsfolien. Das Präsentations‑weite ForEach.shape, ForEach.paragraph und ForEach.portion schließen standardmäßig normale, Master‑ und Layout‑Folien ein. Verwenden Sie deren Überladungen mit includeNotes = true, um Notizfolien einzubeziehen.
Was ist der Unterschied zwischen ForEach.shape und Collect.shapes?
Verwenden Sie ForEach.shape, um jedes Shape sofort über einen Callback zu verarbeiten. Verwenden Sie Collect.shapes, wenn Sie ein iterierbares Ergebnis benötigen, das Sie behalten, filtern, zählen oder mehrmals durchlaufen können.
Macht Compress die Präsentationsdatei immer kleiner?
Nicht unbedingt. Das Ergebnis hängt davon ab, ob die Präsentation ungenutzte Layouts, ungenutzte Master oder eingebettete Schriften mit ungenutzten Zeichen enthält. Wenn keiner dieser Punkte vorkommt, reduzieren die entsprechenden Compress‑Operationen die Dateigröße möglicherweise nicht.
Werden Änderungen durch ForEach oder Compress automatisch gespeichert?
Nein. Diese Helfer arbeiten mit dem geladenen Presentation-Objekt im Speicher. Nachdem Sie Elemente in einem ForEach-Callback geändert oder Compress ausgeführt haben, rufen Sie Presentation.save auf, um das Ergebnis zu schreiben.