Otevření prezentací na Androidu

Úvod

Aspose.Slides for Android via Java může načíst prezentace PowerPoint a OpenDocument ze souborů a proudů. Po načtení prezentace můžete prozkoumat její strukturu, upravovat snímky, spravovat prostředky a uložit ji v původním nebo jiném podporovaném formátu.

Chování načítání lze přizpůsobit pomocí třídy LoadOptions. Například můžete zadat otevírací heslo, uchovávat velké binární objekty mimo haldu Java, řídit externí prostředky nebo vynechat vložená binární data.

Otevření prezentací

Po načtení souboru nebo proudu můžete zjistit jeho původní formát prezentace, abyste si vybrali, jak aplikace bude s prezentací pracovat.

Pro otevření existující prezentace předáte její cestu k souboru do konstruktoru Presentation. Po použití uvolněte instanci prezentace, aby byly souborové handle, dočasná data a další prostředky okamžitě uvolněny.

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

import com.aspose.slides.Presentation;

Presentation presentation = new Presentation("sample.pptx");
try {
    System.out.println("Slide count: " + presentation.getSlides().size());
} finally {
    presentation.dispose();
}

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

Otevírací heslo šifruje obsah prezentace. Pro načtení celé prezentace předáte správné heslo metodě LoadOptions.setPassword a předáte možnosti konstruktoru Presentation. Načtení selže, pokud heslo chybí nebo je nesprávné.

import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;

LoadOptions loadOptions = new LoadOptions();
loadOptions.setPassword("open_password");

Presentation presentation = new Presentation("encrypted-presentation.pptx", loadOptions);
try {
    System.out.println("Slide count: " + presentation.getSlides().size());
} finally {
    presentation.dispose();
}

Pro detekci hesla, jeho ověření a šifrovací pracovní postupy viz Password-Protect Presentations. Pokud byla šifrovaná prezentace úmyslně uložena s veřejnými vlastnostmi dokumentu, lze tyto vlastnosti číst bez hesla; viz Manage Presentation Properties.

Otevření velkých prezentací

LoadOptions.getBlobManagementOptions vrací možnosti, které řídí, jak Aspose.Slides zachází s binárními velkými objekty, jako jsou obrázky, audio a video. Můžete nechat zdrojový soubor zamčený, povolit dočasné soubory a omezit množství BLOB dat uchovávaných v paměti.

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

import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.PresentationLockingBehavior;
import com.aspose.slides.SaveFormat;

final String filePath = "large-presentation.pptx";

LoadOptions loadOptions = new LoadOptions();
loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(PresentationLockingBehavior.KeepLocked);
loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true);
loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(10 * 1024 * 1024);

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

Řízení externích prostředků

LoadOptions.setResourceLoadingCallback přijímá implementaci rozhraní IResourceLoadingCallback. Callback může poskytnout náhradní data, přesměrovat prostředek, použít výchozí načítač nebo prostředek přeskočit. To je užitečné, když prezentace obsahují externí obrázky, které je třeba vyřešit podle specifických bezpečnostních nebo úložných pravidel aplikace.

import com.aspose.slides.IResourceLoadingArgs;
import com.aspose.slides.IResourceLoadingCallback;
import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.ResourceLoadingAction;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Locale;

class ImageLoadingHandler implements IResourceLoadingCallback {
    public int resourceLoading(IResourceLoadingArgs args) {
        boolean isJpeg = args.getOriginalUri().toLowerCase(Locale.ROOT).endsWith(".jpg");
        Path approvedImagePath = Paths.get("approved-image.jpg");
        if (!isJpeg || !Files.exists(approvedImagePath)) {
            return ResourceLoadingAction.Skip;
        }

        try {
            byte[] imageData = Files.readAllBytes(approvedImagePath);
            args.setData(imageData);
            return ResourceLoadingAction.UserProvided;
        } catch (IOException exception) {
            System.err.println("The approved replacement image could not be read.");
            return ResourceLoadingAction.Skip;
        }
    }
}

LoadOptions loadOptions = new LoadOptions();
loadOptions.setResourceLoadingCallback(new ImageLoadingHandler());

Presentation presentation = new Presentation("presentation-with-external-images.pptx", loadOptions);
try {
    System.out.println("Slide count: " + presentation.getSlides().size());
} finally {
    presentation.dispose();
}

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

Prezentace může obsahovat vložená binární data, která aplikace nepotřebuje nebo nechce zachovat. Příklady zahrnují:

Nastavte LoadOptions.setDeleteEmbeddedBinaryObjects na true, aby se tato binární data při načítání odstranila. Uložte načtenou prezentaci, aby se zachoval vyčištěný výsledek.

Tato volba snižuje riziko nechtěných vložených nákladů, avšak nejedná se o kompletní systém detekce škodlivého softwaru či sanitizace obsahu.

import com.aspose.slides.LoadOptions;
import com.aspose.slides.Presentation;
import com.aspose.slides.SaveFormat;

LoadOptions loadOptions = new LoadOptions();
loadOptions.setDeleteEmbeddedBinaryObjects(true);

Presentation presentation = new Presentation("presentation-with-embedded-data.pptx", loadOptions);
try {
    presentation.save("presentation-without-embedded-data.pptx", SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

Často kladené otázky

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

Aspose.Slides během načítání vyhodí výjimku parsování nebo formátu. Tento selhání ošetřete odděleně od chyby nesprávného hesla, aby aplikace mohla přesně oznámit příčinu.

Co se stane, pokud chybí požadovaná písma?

Prezentace se může i nadále načíst, ale při vykreslování a exportu mohou být písma nahrazena. Můžete konfigurovat substituci písma nebo poskytnout vlastní písma, aby byl výstup předvídatelnější.

Načítá se při načítání prezentace také její vložená média?

Vložený audio a video se zpřístupní prostřednictvím objektového modelu prezentace. Externí prostředky jsou řešeny podle nastaveného chování načítání prostředků a mohou být nedostupné, pokud nelze jejich umístění přistupovat.