Öppna presentationer i JavaScript

Introduktion

Förutom att skapa PowerPoint-presentationer från grunden låter Aspose.Slides dig också öppna befintliga presentationer. Efter att ha laddat en presentation kan du hämta information om den, redigera bildinnehåll, lägga till nya bilder, ta bort befintliga och mer.

Öppna presentationer

För att öppna en befintlig presentation, skapa en instans av klassen Presentation och skicka filens sökväg till dess konstruktor.

Följande JavaScript‑exempel visar hur man öppnar en presentation och får antalet bilder:

// Skapa en instans av Presentation-klassen och skicka en filsökväg till dess konstruktor.
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
    // Skriv ut det totala antalet bilder i presentationen.
    console.log(presentation.getSlides().size());
} finally {
    presentation.dispose();
}

Öppna lösenordsskyddade presentationer

När du behöver öppna en lösenordsskyddad presentation, skicka lösenordet via metoden setPassword i klassen LoadOptions för att dekryptera och ladda den. Följande JavaScript‑kod demonstrerar denna operation:

let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setPassword("YOUR_PASSWORD");

let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions);
try {
    // Utför operationer på den dekrypterade presentationen.
} finally {
    presentation.dispose();
}

Öppna stora presentationer

Aspose.Slides tillhandahåller alternativ—särskilt metoden getBlobManagementOptions i klassen LoadOptions—för att hjälpa dig ladda stora presentationer.

Följande JavaScript‑kod demonstrerar hur man laddar en stor presentation (till exempel 2 GB):

const filePath = "LargePresentation.pptx";

let loadOptions = new aspose.slides.LoadOptions();
// Välj KeepLocked‑beteendet—presentationsfilen förblir låst under hela livslängden för
// Presentation‑instansen, men den behöver inte laddas in i minnet eller kopieras till en tillfällig fil.
loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(aspose.slides.PresentationLockingBehavior.KeepLocked);
loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true);
loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024); // 10 MB

let presentation = new aspose.slides.Presentation(filePath, loadOptions);
try {
    // Den stora presentationen har laddats och kan användas, medan minnesanvändningen förblir låg.
    
    // Gör ändringar i presentationen.
    presentation.getSlides().get_Item(0).setName("Large presentation");

    // Spara presentationen till en annan fil. Minnesanvändningen förblir låg under denna operation.
    presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx);

    // Gör inte detta! Ett I/O‑undantag kommer att kastas eftersom filen är låst tills presentationsobjektet har avyttrats.
    //fs.unlinkSync(filePath);
} finally {
    presentation.dispose();
}

// Det är OK att göra det här. Källfilen är inte längre låst av presentationsobjektet.
fs.unlinkSync(filePath);

Styr externa resurser

Aspose.Slides tillhandahåller gränssnittet IResourceLoadingCallback som låter dig hantera externa resurser. Följande JavaScript‑kod visar hur man använder IResourceLoadingCallback‑gränssnittet:

const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", {
  resourceLoading: function(args) {
        if (args.getOriginalUri().endsWith(".jpg")) {
            try {
                // Ladda en ersättningsbild.
                const imageData = fs.readFileSync("aspose-logo.jpg");
                args.setData(imageData);
                return aspose.slides.ResourceLoadingAction.UserProvided;
            } catch {
                return aspose.slides.ResourceLoadingAction.Skip;
            }
        } else if (args.getOriginalUri().endsWith(".png")) {
            // Ange en ersättnings-URL.
            args.setUri("http://www.google.com/images/logos/ps_logo2.png");
            return aspose.slides.ResourceLoadingAction.Default;
        }
        // Hoppa över alla andra bilder.
        return aspose.slides.ResourceLoadingAction.Skip;
      }
});
let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setResourceLoadingCallback(ImageLoadingHandler);

let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions);

Ladda presentationer utan inbäddade binära objekt

En PowerPoint-presentation kan innehålla följande typer av inbäddade binära objekt:

Genom att använda metoden LoadOptions.setDeleteEmbeddedBinaryObjects kan du ladda en presentation utan några inbäddade binära objekt.

Denna metod är användbar för att ta bort potentiellt skadligt binärt innehåll. Följande JavaScript‑kod demonstrerar hur man laddar en presentation utan inbäddat binärt innehåll:

let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setDeleteEmbeddedBinaryObjects(true);

let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions);
try {
    // Utför operationer på presentationen.
} finally {
    presentation.dispose();
}

FAQ

Hur kan jag avgöra att en fil är korrupt och inte kan öppnas?

Du får ett parsning-/formatvalideringsundantag under inläsning. Sådana fel nämner ofta en ogiltig ZIP‑struktur eller trasiga PowerPoint‑poster.

Vad händer om nödvändiga teckensnitt saknas vid öppning?

Filen öppnas, men senare rendering/export kan ersätta teckensnitten. Configure font substitutions eller add the required fonts till körmiljön.

Vad händer med inbäddade media (video/ljud) vid öppning?

De blir tillgängliga som presentationsresurser. Om media refereras via externa sökvägar, se till att dessa sökvägar är tillgängliga i din miljö; annars kan rendering/export utelämna media.