Low-Code Presentatiebewerkingen in JavaScript

Overzicht

De namespace aspose.slides biedt statische helperklassen voor veelvoorkomende presentatietaken. Deze helpers verpakken vaak gebruikte workflows van het objectmodel in gerichte methoden, zodat je bestanden kunt converteren of samenvoegen, presentatiewaarde‑elementen kunt verwerken, vormen kunt verzamelen en ongebruikte inhoud kunt verwijderen met minder code.

Low‑code helpers zijn het meest nuttig wanneer de bewerking betrekking heeft op een heel bestand of presentatie en de standaardworkflow aan je eisen voldoet. Gebruik het volledige Aspose.Slides object model wanneer je fijnmazige controle nodig hebt over afzonderlijke dia’s, masters, lay‑outs, vormen, exportinstellingen of relaties tussen presentatie‑elementen.

De volgende tabel geeft een overzicht van de beschikbare helpers:

Helper Waarvoor gebruiken
Convert Een presentatie converteren naar een ander formaat met een directe bestand‑naar‑bestand‑aanroep.
Merger Complete presentatiebestanden van hetzelfde formaat combineren.
ForEach Een actie uitvoeren voor elke dia, vorm, alinea of tekstgedeelte.
Collect Vormen uit de gehele presentatie ophalen voor herhaalde verwerking of analyse.
Compress Ongebruikte masters en lay‑outs verwijderen en ingesloten lettertype‑gegevens reduceren.

Een presentatie converteren

Gebruik Convert.autoByExtension wanneer de extensie van het uitvoerbestand voldoende is om het exportformaat te bepalen. De methode opent de bronpresentatie, bepaalt het vereiste formaat aan de hand van het uitvoerpad en schrijft het resultaat.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

aspose.slides.Convert.autoByExtension("input.pptx", "output.pdf");

De Convert‑klasse biedt ook speciale methoden voor PDF-, SVG-, JPEG-, PNG- en TIFF‑uitvoer. Gebruik het volledige objectmodel wanneer je de presentatie wilt inspecteren of wijzigen vóór export of een exportoptie wilt configureren die niet door de geselecteerde helper wordt blootgelegd. Zie Convert Presentation voor format‑specifieke workflows en opties.

Presentaties samenvoegen

Gebruik Merger.process om volledige presentatiebestanden in één oproep te combineren. De invoerpresentaties moeten hetzelfde bestandsformaat hebben.

var aspose = aspose || {};
aspose.slides = require("aspose.slides.via.java");

const inputFiles = ["first.pptx", "second.pptx"];
aspose.slides.Merger.process(inputFiles, "merged.pptx");

Deze helper is geschikt wanneer alle dia’s aan één resultaat moeten worden toegevoegd zonder ze individueel te selecteren of te herkaarten. Gebruik het volledige objectmodel wanneer je geselecteerde dia’s wilt samenvoegen, een bestemmings‑master of -lay‑out wilt toepassen, secties expliciet wilt behouden of verschillende dia‑groottes wilt reconcilieren. Zie Merge Presentations voor die scenario’s.

Door presentatiewaarde‑elementen itereren

De ForEach‑klasse roept een callback aan voor elk gevraagde type presentatiewaarde‑element. Het vermijdt geneste verzamelingslussen en is handig voor inspectie of opmaakwijzigingen over de hele presentatie. In Node.js maak je implementaties van de callback‑interfaces met java.newProxy.

Het volgende voorbeeld gebruikt ForEach.slide, ForEach.shape, ForEach.paragraph en ForEach.portion om de overeenkomstige elementen te inspecteren:

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

Standaard omvat de vorm‑ en tekst‑traversal over de hele presentatie normale, master‑ en lay‑outdia’s. Overloads met een includeNotes‑parameter kunnen ook notitiedia’s verwerken. Gebruik directe verzamelingslussen wanneer de traversaalvolgorde, vroegtijdig beëindigen, filteren vóór het aanroepen van de callback of gedetailleerde ouder‑kind‑controle belangrijk is.

Vormen verzamelen

Gebruik Collect.shapes wanneer je een verzameling van alle vormen in een presentatie nodig hebt in plaats van een callback voor elke vorm. Dit is nuttig wanneer dezelfde set later gefilterd, geteld of meermaals verwerkt zal worden.

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

Gebruik ForEach.shape in plaats daarvan wanneer elke vorm direct kan worden afgehandeld en je het verzamelde resultaat niet hoeft te bewaren.

Presentatie‑inhoud comprimeren

De Compress‑klasse kan ongebruikte structurele elementen verwijderen en ingesloten lettertype‑gegevens reduceren:

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

Verwijder eerst ongebruikte lay‑outs vóór ongebruikte masters, zodat een master die na het opruimen van lay‑outs niet meer wordt verwezen, ook kan worden verwijderd. Sla de geoptimaliseerde presentatie op in een nieuw bestand als je later de originele masters, lay‑outs of volledige ingesloten lettertype‑gegevens nodig hebt. Voor meer details, zie Slide Master en Embedded Font.

FAQ

Wanneer moet ik de low‑code API gebruiken in plaats van het volledige objectmodel?

Gebruik low‑code helpers wanneer een standaardbewerking van toepassing is op een compleet bestand of presentatie en geen gedetailleerde controle over afzonderlijke elementen vereist. Gebruik het volledige objectmodel wanneer je specifieke dia’s moet selecteren, relaties tussen master en lay‑out moet beheren, de tussentijdse staat wilt inspecteren of gedrag wilt configureren dat de helper niet blootlegt.

Kan Merger presentaties combineren in verschillende bestandsformaten?

Nee. Merger.process vereist invoerpresentaties in hetzelfde formaat. Converteer de invoerbestanden eerst naar een gemeenschappelijk formaat, bijvoorbeeld met Convert.autoByExtension, en voeg daarna de geconverteerde bestanden samen.

Verwerkt ForEach master-, layout- en notitiedia’s?

ForEach.slide itereert over normale presentatiedia’s. Presentatie‑brede ForEach.shape, ForEach.paragraph en ForEach.portion bewerkingen omvatten standaard normale, master‑ en lay‑outdia’s. Gebruik hun overloads met includeNotes ingesteld op true om notitiedia’s mee te nemen.

Wat is het verschil tussen ForEach.shape en Collect.shapes?

Gebruik ForEach.shape om elke vorm direct via een callback te verwerken. Gebruik Collect.shapes wanneer je een iterabel resultaat nodig hebt dat kan worden bewaard, gefilterd, geteld of meerdere keren kan worden doorlopen.

Maakt Compress altijd de presentatiedoor kleiner?

Niet per se. Het resultaat hangt af van of de presentatie ongebruikte lay‑outs, ongebruikte masters of ingesloten lettertypen met ongebruikte tekens bevat. Als geen van deze aanwezig is, verminderen de bijbehorende Compress‑bewerkingen mogelijk niet de bestandsgrootte.

Worden wijzigingen die door ForEach of Compress worden aangebracht automatisch opgeslagen?

Nee. Deze helpers werken op het geladen Presentation‑object in het geheugen. Nadat je elementen hebt gewijzigd in een ForEach‑callback of Compress hebt uitgevoerd, roep je Presentation.save aan om het resultaat weg te schrijven.

Gerelateerde artikelen