Low-Code-Präsentationsoperationen in JavaScript
Übersicht
Der Namespace aspose.slides stellt statische Hilfsklassen für gängige Präsentationsoperationen bereit. Diese Hilfsmittel kapseln häufig genutzte Objektmodell‑Workflows in fokussierten Methoden, sodass Sie Dateien konvertieren oder zusammenführen, Präsentationselemente verarbeiten, Shapes sammeln und unbenutzten Inhalt mit weniger Code entfernen können.
Low‑Code‑Hilfsmittel sind am nützlichsten, wenn die Operation 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 eine 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 Hilfsmittel zusammen:
| Hilfsmittel | Verwendungszweck |
|---|---|
| Convert | Konvertieren einer Präsentation in ein anderes Format mit einem direkten Datei‑zu‑Datei‑Aufruf. |
| Merger | Kombinieren vollständiger Präsentationsdateien desselben Formats. |
| ForEach | Ausführen einer Aktion für jede Folie, jedes Shape, jeden Absatz oder Textabschnitt. |
| Collect | Abrufen von Shapes aus der gesamten Präsentation für wiederholte Verarbeitung oder Analyse. |
| Compress | Entfernen ungenutzter Master‑ und Layout‑Folien und Reduzieren eingebetteter Schriftartdaten. |
Eine Präsentation konvertieren
Verwenden Sie Convert.autoByExtension, wenn die Dateierweiterung des Ausgabedokuments ausreicht, um das Exportformat zu bestimmen. Die Methode öffnet die Quellpräsentation, ermittelt das erforderliche Format anhand des Ausgabepfads und schreibt das Ergebnis.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
aspose.slides.Convert.autoByExtension("input.pptx", "output.pdf");
Die Klasse Convert bietet außerdem dedizierte Methoden für die Ausgabe als PDF, SVG, JPEG, PNG und TIFF. Verwenden Sie das vollständige Objektmodell, wenn Sie die Präsentation vor dem Export prüfen oder ändern müssen oder eine Exportoption konfigurieren wollen, die vom ausgewählten Hilfsmittel nicht bereitgestellt wird. Siehe Präsentation konvertieren für formatabhängige Workflows und Optionen.
Präsentationen zusammenführen
Verwenden Sie Merger.process, um komplette Präsentationsdateien mit einem Aufruf zu kombinieren. Die Eingabepräsentationen müssen dasselbe Dateiformat besitzen.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const inputFiles = ["first.pptx", "second.pptx"];
aspose.slides.Merger.process(inputFiles, "merged.pptx");
Das Hilfsmittel ist geeignet, wenn alle Folien zu einem Ergebnis hinzugefügt werden sollen, ohne sie einzeln auszuwählen oder neu zuzuordnen. Verwenden Sie das vollständige Objektmodell, wenn Sie ausgewählte Folien zusammenführen, einen Ziel‑Master oder -Layout anwenden, Abschnitte explizit erhalten oder unterschiedliche Foliengrößen ausgleichen müssen. Siehe Präsentationen zusammenführen für diese Szenarien.
Durch Präsentationselemente iterieren
Die Klasse ForEach ruft für jeden angeforderten Typ eines Präsentationselements einen Callback auf. Sie vermeidet verschachtelte Sammlungsschleifen und ist praktisch für eine Präsentations‑weite Inspektion oder Formatierungsänderungen. In Node.js erstellen Sie Implementierungen der Callback‑Schnittstellen mit java.newProxy.
Das folgende Beispiel verwendet ForEach.slide, ForEach.shape, ForEach.paragraph und ForEach.portion, um die entsprechenden Elemente zu prüfen:
const java = require("java");
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const presentation = new aspose.slides.Presentation("input.pptx");
try {
const slideCallback = java.newProxy("com.aspose.slides.ForEach$ForEachSlideCallback", {
invoke: function (slide, index) {
console.log(`Slide ${index}: ${slide.getShapes().size()} shapes`);
}
});
aspose.slides.ForEach.slide(presentation, slideCallback);
const shapeCallback = java.newProxy("com.aspose.slides.ForEach$ForEachShapeCallback", {
invoke: function (shape, slide, index) {
console.log(`Shape ${index} on ${slide.getClass().getSimpleName()}: ${shape.getName()}`);
}
});
aspose.slides.ForEach.shape(presentation, shapeCallback);
const paragraphCallback = java.newProxy("com.aspose.slides.ForEach$ForEachParagraphCallback", {
invoke: function (paragraph, slide, index) {
console.log(`Paragraph ${index} on ${slide.getClass().getSimpleName()}: ${paragraph.getText()}`);
}
});
aspose.slides.ForEach.paragraph(presentation, paragraphCallback);
const portionCallback = java.newProxy("com.aspose.slides.ForEach$ForEachPortionCallback", {
invoke: function (portion, paragraph, slide, index) {
console.log(`Portion ${index} on ${slide.getClass().getSimpleName()}: ${portion.getText()}`);
}
});
aspose.slides.ForEach.portion(presentation, portionCallback);
} finally {
presentation.dispose();
}
Standardmäßig umfasst die Präsentations‑weite Shape‑ und Text‑Durchlauf normale, Master‑ und Layout‑Folien. Überladungen mit einem includeNotes‑Parameter können zudem Notizfolien verarbeiten. Verwenden Sie direkte Sammlungsschleifen, wenn die Durchlaufreihenfolge, ein früher Abbruch, Filterung vor dem Callback‑Aufruf oder eine detaillierte Eltern‑Kind‑Steuerung wichtig ist.
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 verwenden. Dies ist nützlich, wenn derselbe Satz mehrfach gefiltert, gezählt oder verarbeitet werden soll.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const presentation = new aspose.slides.Presentation("input.pptx");
try {
const shapes = aspose.slides.Collect.shapes(presentation);
const iterator = shapes.iterator();
while (iterator.hasNext()) {
const shape = iterator.next();
console.log(`${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 Schriftarten.
var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");
const presentation = new aspose.slides.Presentation("input.pptx");
try {
aspose.slides.Compress.removeUnusedLayoutSlides(presentation);
aspose.slides.Compress.removeUnusedMasterSlides(presentation);
aspose.slides.Compress.compressEmbeddedFonts(presentation);
presentation.save("compressed.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
presentation.dispose();
}
Entfernen Sie ungenutzte Layouts vor ungenutzten Mastern, 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 später die ursprünglichen Master, Layouts oder die vollständigen eingebetteten Schriftartdaten benötigen. Weitere Details finden Sie unter Folienmaster und Eingebettete Schriftart.
FAQ
Wann sollte ich die Low‑Code‑API anstelle des vollständigen Objektmodells verwenden?
Verwenden Sie Low‑Code‑Hilfsmittel, wenn ein Standardvorgang auf eine komplette Datei oder Präsentation angewendet wird und keine detaillierte Kontrolle über einzelne Elemente erfordert. Verwenden Sie das vollständige Objektmodell, wenn Sie bestimmte Folien auswählen, Master‑ und Layout‑Beziehungen steuern, den Zwischenzustand prüfen oder ein Verhalten konfigurieren müssen, das das Hilfsmittel nicht bereitstellt.
Kann Merger Präsentationen in unterschiedlichen Dateiformaten kombinieren?
Nein. Merger.process erfordert Eingabepräsentationen im selben 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 durchläuft normale Präsentationsfolien. Präsentationsweite ForEach.shape, ForEach.paragraph und ForEach.portion Operationen schließen standardmäßig normale, Master‑ und Layout‑Folien ein. Verwenden Sie deren Überladungen mit includeNotes auf true, um Notizfolien einzuschließen.
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 behalten, gefiltert, gezählt oder mehrfach durchlaufen werden kann.
Verkleinert Compress immer die Präsentationsdatei?
Nicht unbedingt. Das Ergebnis hängt davon ab, ob die Präsentation ungenutzte Layouts, ungenutzte Master oder eingebettete Schriftarten mit ungenutzten Zeichen enthält. Wenn keines davon vorhanden ist, können die entsprechenden Compress‑Operationen die Dateigröße möglicherweise nicht verringern.
Werden Änderungen, die von ForEach oder Compress vorgenommen wurden, automatisch gespeichert?
Nein. Diese Hilfsmittel arbeiten auf 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.