Otevření prezentací v JavaScriptu

Úvod

Kromě vytváření prezentací PowerPoint od nuly vám Aspose.Slides také umožňuje otevírat existující prezentace. Po načtení prezentace můžete získat informace o ní, upravovat obsah snímků, přidávat nové snímky, odstraňovat existující a další.

Otevření prezentací

Chcete‑li otevřít existující prezentaci, vytvořte instanci třídy Presentation a do jejího konstruktoru předáte cestu k souboru.

Následující příklad v JavaScriptu ukazuje, jak otevřít prezentaci a získat počet snímků:

// Vytvořte instanci třídy Presentation a předávejte cestu k souboru do jejího konstruktoru.
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
    // Vytiskněte celkový počet snímků v prezentaci.
    console.log(presentation.getSlides().size());
} finally {
    presentation.dispose();
}

Otevření prezentací chráněných heslem

Když potřebujete otevřít prezentaci chráněnou heslem, předáte heslo metodě setPassword třídy LoadOptions, která ji dešifruje a načte. Následující kód v JavaScriptu demonstruje tuto operaci:

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

let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions);
try {
    // Proveďte operace na dešifrované prezentaci.
} finally {
    presentation.dispose();
}

Otevření velkých prezentací

Aspose.Slides poskytuje možnosti – zejména metodu getBlobManagementOptions ve třídě LoadOptions – které vám pomohou načíst velké prezentace.

Následující kód v JavaScriptu ukazuje načtení velké prezentace (například 2 GB):

const filePath = "LargePresentation.pptx";

let loadOptions = new aspose.slides.LoadOptions();
// Vyberte chování KeepLocked—soubor prezentace bude uzamčen po dobu
// životnosti instance Presentation, ale není nutné jej načítat do paměti ani kopírovat do dočasného souboru.
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 {
    // Velká prezentace byla načtena a může být použita, přičemž spotřeba paměti zůstává nízká.
    
    // Proveďte změny v prezentaci.
    presentation.getSlides().get_Item(0).setName("Large presentation");

    // Uložte prezentaci do jiného souboru. Spotřeba paměti zůstává nízká během této operace.
    presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx);

    // Nedělejte to! Bude vyhozena výjimka I/O, protože soubor je uzamčen, dokud není objekt prezentace uvolněn.
    //fs.unlinkSync(filePath);
} finally {
    presentation.dispose();
}

// Je v pořádku to provést zde. Zdrojový soubor již není uzamčen objektem prezentace.
fs.unlinkSync(filePath);

Řízení externích zdrojů

Aspose.Slides poskytuje rozhraní IResourceLoadingCallback, které vám umožňuje spravovat externí zdroje. Následující kód v JavaScriptu ukazuje, jak použít rozhraní IResourceLoadingCallback:

const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", {
  resourceLoading: function(args) {
        if (args.getOriginalUri().endsWith(".jpg")) {
            try {
                // Načíst náhradní obrázek.
                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")) {
            // Nastavit náhradní URL.
            args.setUri("http://www.google.com/images/logos/ps_logo2.png");
            return aspose.slides.ResourceLoadingAction.Default;
        }
        // Přeskočit všechny ostatní obrázky.
        return aspose.slides.ResourceLoadingAction.Skip;
      }
});
let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setResourceLoadingCallback(ImageLoadingHandler);

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

Načtení prezentací bez vložených binárních objektů

Prezentace PowerPoint může obsahovat následující typy vložených binárních objektů:

Pomocí metody LoadOptions.setDeleteEmbeddedBinaryObjects můžete načíst prezentaci bez jakýchkoli vložených binárních objektů.

Tato metoda je užitečná pro odstranění potenciálně škodlivého binárního obsahu. Následující kód v JavaScriptu ukazuje, jak načíst prezentaci bez jakéhokoli vloženého binárního obsahu:

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

let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions);
try {
    // Proveďte operace na prezentaci.
} finally {
    presentation.dispose();
}

FAQ

Jak zjistím, že je soubor poškozený a nelze jej otevřít?

Během načítání obdržíte výjimku při parsování/validaci formátu. Takové chyby často uvádějí neplatnou strukturu ZIP nebo poškozené záznamy PowerPointu.

Co se stane, pokud při otevírání chybí požadované fonty?

Soubor se otevře, ale později může při renderování/exportu dojít k náhradě fontů. Nastavte náhrady fontů nebo přidejte požadované fonty do runtime prostředí.

Co se stane s vloženými médii (video/audio) při otevírání?

Stanou se dostupnými jako zdroje prezentace. Pokud jsou média odkazována externími cestami, ujistěte se, že jsou v prostředí přístupné; jinak může při renderování/exportu dojít k jejich vynechání.