Prezentációk megnyitása PHP-ben
Bevezetés
Aspose.Slides for PHP via Java képes PowerPoint és OpenDocument prezentációkat betölteni fájlokból és adatfolyamokból. Miután egy prezentációt betöltöttél, vizsgálhatod a szerkezetét, szerkesztheted a diát, kezelheted az erőforrásokat, és elmentheted az eredeti vagy egy másik támogatott formátumban.
A betöltés viselkedését a LoadOptions osztályon keresztül testre szabhatod. Például megadhatsz egy nyitó jelszót, nagy bináris objektumokat tarthatsz a Java halommemórián kívül, szabályozhatod a külső erőforrásokat, vagy kihagyhatod a beágyazott bináris adatokat.
Prezentációk megnyitása
Fájl vagy adatfolyam betöltése után meghatározhatod az eredeti prezentációformátumot, hogy kiválaszthasd, hogyan dolgozza fel az alkalmazásod.
Egy meglévő prezentáció megnyitásához add át a fájl útvonalát a Presentation konstruktorának. A használat után szabadítsd fel a prezentációt, hogy a fájlkezelők, ideiglenes adatok és egyéb erőforrások gyorsan felszabaduljanak.
Az alábbi PHP példa bemutatja, hogyan nyithatsz meg egy prezentációt és hogyan kérheted le a diák számát:
use aspose\slides\Presentation;
$presentation = new Presentation("sample.pptx");
try {
echo("Slide count: " . java_values($presentation->getSlides()->size()) . "\n");
} finally {
$presentation->dispose();
}
Jelszóval védett prezentációk megnyitása
A nyitó jelszó titkosítja a prezentáció tartalmát. A teljes prezentáció betöltéséhez add át a helyes jelszót a LoadOptions::setPassword metódusnak, és add meg a beállításokat a Presentation konstruktorának. A betöltés meghiúsul, ha a jelszó hiányzik vagy helytelen.
use aspose\slides\LoadOptions;
use aspose\slides\Presentation;
$loadOptions = new LoadOptions();
$loadOptions->setPassword("open_password");
$presentation = new Presentation("encrypted-presentation.pptx", $loadOptions);
try {
echo("Slide count: " . java_values($presentation->getSlides()->size()) . "\n");
} finally {
$presentation->dispose();
}
A jelszó felismerésével, ellenőrzésével és titkosítási munkafolyamatokkal kapcsolatban lásd a Password-Protect Presentations oldalt. Ha egy titkosított prezentációt szándékosan nyilvános dokumentumtulajdonságokkal mentették, ezek a tulajdonságok jelszó nélkül is olvashatók; lásd a Manage Presentation Properties oldalt.
Nagy méretű prezentációk megnyitása
LoadOptions::getBlobManagementOptions visszaadja azokat a beállításokat, amelyek szabályozzák, hogyan kezeli az Aspose.Slides a nagy bináris objektumokat, például képeket, hangot és videót. A forrásfájlt zárolhatod, engedélyezheted az ideiglenes fájlokat, és korlátozhatod a memóriában megtartott BLOB adatok mennyiségét.
Az alábbi PHP kód bemutatja egy nagy prezentáció betöltését (például 2 GB):
use aspose\slides\LoadOptions;
use aspose\slides\Presentation;
use aspose\slides\PresentationLockingBehavior;
use aspose\slides\SaveFormat;
$filePath = "large-presentation.pptx";
$loadOptions = new LoadOptions();
$loadOptions->getBlobManagementOptions()->setPresentationLockingBehavior(PresentationLockingBehavior::KeepLocked);
$loadOptions->getBlobManagementOptions()->setTemporaryFilesAllowed(true);
$loadOptions->getBlobManagementOptions()->setMaxBlobsBytesInMemory(10 * 1024 * 1024);
$presentation = new Presentation($filePath, $loadOptions);
try {
$presentation->getSlides()->get_Item(0)->setName("Large presentation");
$presentation->save("large-presentation-copy.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
Note
A PresentationLockingBehavior::KeepLocked használatával a forrásfájl zárolva marad, amíg a prezentáció példány ki nem kerülől. Ne mozdítsd el, írd felül vagy töröld a forrásfájlt, amíg ez a példány él.
Az Aspose.Slides betöltéskor másolhatja a bemeneti adatfolyam tartalmát. Nagy prezentációk esetén ezért általában a fájlútvonal hatékonyabb, mint egy adatfolyam. További tárolási és memória-kezelési lehetőségekért lásd a Manage BLOBs oldalt.
Külső erőforrások szabályozása
LoadOptions::setResourceLoadingCallback a PHP/Java Bridge-en keresztül egy Java IResourceLoadingCallback interfész megvalósítását fogadja el. A visszahívás helyettesítő adatot adhat, átirányíthat egy erőforrást, használhatja az alapértelmezett betöltőt, vagy kihagyhatja az erőforrást. Ez akkor hasznos, ha a prezentációk külső képeket tartalmaznak, amelyeket az alkalmazás-specifikus biztonsági vagy tárolási szabályok szerint kell feloldani.
use aspose\slides\LoadOptions;
use aspose\slides\Presentation;
use aspose\slides\ResourceLoadingAction;
class ImageLoadingHandler {
function resourceLoading($args) {
$originalUri = strtolower(java_values($args->getOriginalUri()));
$approvedImagePath = "approved-image.jpg";
$isJpeg = substr($originalUri, -4) === ".jpg";
if (!$isJpeg || !file_exists($approvedImagePath)) {
return ResourceLoadingAction::Skip;
}
$imageData = file_get_contents($approvedImagePath);
if ($imageData === false) {
echo("The approved replacement image could not be read.\n");
return ResourceLoadingAction::Skip;
}
$args->setData(java_values($imageData));
return ResourceLoadingAction::UserProvided;
}
}
$loadingHandler = java_closure(new ImageLoadingHandler(), null, java("com.aspose.slides.IResourceLoadingCallback"));
$loadOptions = new LoadOptions();
$loadOptions->setResourceLoadingCallback($loadingHandler);
$presentation = new Presentation("presentation-with-external-images.pptx", $loadOptions);
try {
echo("Slide count: " . java_values($presentation->getSlides()->size()) . "\n");
} finally {
$presentation->dispose();
}
Prezentációk betöltése beágyazott bináris objektumok nélkül
Egy prezentáció beágyazott bináris adatokat tartalmazhat, amelyeket egy alkalmazás nem igényel vagy nem akar megtartani. Példák:
- VBA projektek, a Presentation::getVbaProject segítségével elérhetők;
- beágyazott OLE adatok, az OleEmbeddedDataInfo::getEmbeddedFileData segítségével elérhetők;
- ActiveX vezérlő adatok, a Control::getActiveXControlBinary segítségével elérhetők.
Állítsd a LoadOptions::setDeleteEmbeddedBinaryObjects értékét true‑ra, hogy a betöltés során eltávolítsd ezt a bináris adatot. Mentsd el a betöltött prezentációt, hogy a tisztított eredményt megőrizd.
Ez a beállítás csökkenti a nem kívánt beágyazott terhek kitettségét, de nem tekinthető teljes vírusfelismerő vagy tartalomszűrő rendszernek.
use aspose\slides\LoadOptions;
use aspose\slides\Presentation;
use aspose\slides\SaveFormat;
$loadOptions = new LoadOptions();
$loadOptions->setDeleteEmbeddedBinaryObjects(true);
$presentation = new Presentation("presentation-with-embedded-data.pptx", $loadOptions);
try {
$presentation->save("presentation-without-embedded-data.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
GYIK
Hogyan deríthetem ki, hogy egy fájl sérült és nem nyitható meg?
Az Aspose.Slides betöltés közben elemzési vagy formátum kivételt dob. Kezeld ezt a hibát külön a helytelen jelszó hibájától, hogy az alkalmazás pontosan jelenteni tudja az okot.
Mi történik, ha a szükséges betűtípusok hiányoznak?
A prezentáció továbbra is betölthető, de a megjelenítés és exportálás betűtípus helyettesítéseket alkalmazhat. A betűtípus helyettesítés beállítható, vagy megadhatsz egyedi betűtípusokat, hogy az eredmény kiszámíthatóbb legyen.
Betölti a rendszer a prezentáció beágyazott médiáját is?
A beágyazott hang és videó a prezentáció objektummodelljén keresztül érhető el. A külső erőforrások a beállított erőforrásbetöltési viselkedés szerint kerülnek feloldásra, és előfordulhat, hogy nem érhetők el, ha a helyeikhez nem férnek hozzá.