Prezentációk megnyitása JavaScript-ben
Bevezetés
A PowerPoint-prezentációk készítése mellett az Aspose.Slides lehetővé teszi létező prezentációk megnyitását is. A prezentáció betöltése után lekérdezheti a rá vonatkozó információkat, szerkesztheti a dia tartalmát, új diákat adhat hozzá, eltávolíthat meglévőket, és még sok mást tehet.
Prezentációk megnyitása
Egy létező prezentáció megnyitásához hozza létre a Presentation osztály egy példányát, és adja meg a fájl elérési útját a konstruktorának.
Az alábbi JavaScript példa bemutatja, hogyan nyithat meg egy prezentációt, és hogyan kérdezheti le a diák számát:
// Példányosítsa a Presentation osztályt és adjon meg egy fájl elérési utat a konstruktorának.
let presentation = new aspose.slides.Presentation("Sample.pptx");
try {
// Írassa ki a prezentáció összes diája számát.
console.log(presentation.getSlides().size());
} finally {
presentation.dispose();
}
Jelszóval védett prezentációk megnyitása
Ha jelszóval védett prezentációt kell megnyitnia, adja meg a jelszót a LoadOptions osztály setPassword metódusán keresztül a dekódoláshoz és betöltéshez. Az alábbi JavaScript kód mutatja be ezt a műveletet:
let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setPassword("YOUR_PASSWORD");
let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions);
try {
// Műveleteket végez a feloldott prezentáción.
} finally {
presentation.dispose();
}
Nagy prezentációk megnyitása
Aspose.Slides opciókat biztosít – különösen a LoadOptions osztályban található getBlobManagementOptions metódust – hogy segítsen nagy prezentációk betöltésében.
Az alábbi JavaScript kód demonstrálja egy nagy (például 2 GB) prezentáció betöltését:
const filePath = "LargePresentation.pptx";
let loadOptions = new aspose.slides.LoadOptions();
// Válassza a KeepLocked viselkedést – a prezentáció fájl a Presentation példány élettartama alatt zárolva marad
// a Presentation példányra, de nem szükséges memóriába betölteni vagy ideiglenes fájlba másolni.
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 {
// A nagy prezentáció betöltődött és használható, miközben a memóriahasználat alacsony marad.
// Módosítsa a prezentációt.
presentation.getSlides().get_Item(0).setName("Large presentation");
// Mentse a prezentációt egy másik fájlba. A memóriahasználat alacsony marad a művelet során.
presentation.save("LargePresentation-copy.pptx", aspose.slides.SaveFormat.Pptx);
// Ne tegye ezt! I/O kivétel keletkezik, mert a fájl zárolva van, amíg a presentation objektumot el nem engedi.
//fs.unlinkSync(filePath);
} finally {
presentation.dispose();
}
// Itt már rendben van ezt megtenni. A forrásfájlt már nem zárolja a presentation objektum.
fs.unlinkSync(filePath);
Info
A folyamatos stream-ekkel kapcsolatos bizonyos korlátozások megkerülésére az Aspose.Slides másolhatja a stream tartalmát. Egy nagy prezentáció streamből történő betöltése a prezentáció másolását eredményezi, és lassíthatja a betöltést. Ezért, ha nagy prezentációt kell betölni, erősen ajánljuk, hogy a prezentáció fájl elérési útját használja a stream helyett.
Ha nagy objektumokat (videó, hang, nagy felbontású képek stb.) tartalmazó prezentációt hoz létre, a BLOB management segítségével csökkentheti a memóriahasználatot.
Külső erőforrások kezelése
Aspose.Slides biztosítja az IResourceLoadingCallback interfészt, amely lehetővé teszi a külső erőforrások kezelését. Az alábbi JavaScript kód bemutatja, hogyan használja az IResourceLoadingCallback interfészt:
const ImageLoadingHandler = java.newProxy("com.aspose.slides.IResourceLoadingCallback", {
resourceLoading: function(args) {
if (args.getOriginalUri().endsWith(".jpg")) {
try {
// Töltsön be egy helyettesítő képet.
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")) {
// Állítson be egy helyettesítő URL-t.
args.setUri("http://www.google.com/images/logos/ps_logo2.png");
return aspose.slides.ResourceLoadingAction.Default;
}
// Hagyja ki az összes többi képet.
return aspose.slides.ResourceLoadingAction.Skip;
}
});
let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setResourceLoadingCallback(ImageLoadingHandler);
let presentation = new aspose.slides.Presentation("Sample.pptx", loadOptions);
Prezentációk betöltése beágyazott bináris objektumok nélkül
Egy PowerPoint-prezentáció a következő típusú beágyazott bináris objektumokat tartalmazhat:
- VBA projekt (elérhető a Presentation.getVbaProject segítségével);
- OLE objektum beágyazott adatai (elérhető a OleEmbeddedDataInfo.getEmbeddedFileData segítségével);
- ActiveX vezérlő bináris adatai (elérhető a Control.getActiveXControlBinary segítségével).
A LoadOptions.setDeleteEmbeddedBinaryObjects metódus használatával betölthet egy prezentációt anélkül, hogy bármilyen beágyazott bináris objektumot tartalmazna.
Ez a metódus hasznos a potenciálisan rosszindulatú bináris tartalom eltávolításához. Az alábbi JavaScript kód bemutatja, hogyan töltsön be egy prezentációt beágyazott bináris tartalom nélkül:
let loadOptions = new aspose.slides.LoadOptions();
loadOptions.setDeleteEmbeddedBinaryObjects(true);
let presentation = new aspose.slides.Presentation("malware.ppt", loadOptions);
try {
// Műveleteket végez a prezentáción.
} finally {
presentation.dispose();
}
GYIK
Hogyan tudom megállapítani, hogy egy fájl megsérült és nem nyitható meg?
Betöltéskor egy elemzési/formátum-ellenőrzési kivételt kap. Az ilyen hibák gyakran egy érvénytelen ZIP struktúrát vagy sérült PowerPoint rekordokat említenek.
Mi történik, ha a megnyitáskor hiányoznak a szükséges betűtípusok?
A fájl megnyílik, de később a rendering/export helyettesítheti a betűtípusokat. Configure font substitutions vagy add the required fonts a futási környezethez.
Mi a helyzet a beágyazott média (videó/hang) megnyitásakor?
Elérhetők lesznek a prezentáció erőforrásaként. Ha a médiát külső útvonalakon keresztül hivatkozzák, győződjön meg róla, hogy ezek az útvonalak elérhetők a környezetben; ellenkező esetben a rendering/export kihagyhatja a médiát.