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

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:

Á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á.