Открытие презентации в Java

Помимо создания презентаций PowerPoint с нуля, Aspose.Slides позволяет открывать существующие презентации. После загрузки презентации вы можете получить информацию о ней, редактировать содержание на слайдах, добавлять новые слайды или удалять существующие и т.д.

Открытие презентации

Чтобы открыть существующую презентацию, вам просто нужно создать экземпляр класса Presentation и передать путь к файлу (презентации, которую вы хотите открыть) в его конструктор.

ЭтотJava код показывает, как открыть презентацию и узнать количество слайдов в ней:

// Создает экземпляр класса Presentation и передает путь к файлу в его конструктор
Presentation pres = new Presentation("Presentation.pptx");
try {
    // Выводит общее количество слайдов в презентации
    System.out.println(pres.getSlides().size());
} finally {
    if (pres != null) pres.dispose();
}

Открытие защищенной паролем презентации

Когда вам нужно открыть защищенную паролем презентацию, вы можете передать пароль через свойство Password (из класса LoadOptions), чтобы расшифровать и загрузить презентацию. Этот Java код демонстрирует операцию:

 LoadOptions loadOptions = new LoadOptions();
 loadOptions.setPassword("ВАШ_ПАРОЛЬ");
 Presentation pres = new Presentation("pres.pptx", loadOptions);
 try {
 // Выполняет некоторые действия с расшифрованной презентацией
 } finally {
     if (pres != null) pres.dispose();
 }

Открытие большой презентации

Aspose.Slides предоставляет параметры (в частности, свойство BlobManagementOptions) в классе LoadOptions, чтобы вы могли загружать большие презентации.

Этот Java код демонстрирует операцию, в которой загружается большая презентация (например, 2 ГБ):

LoadOptions loadOptions = new LoadOptions();
loadOptions.getBlobManagementOptions().setPresentationLockingBehavior(PresentationLockingBehavior.KeepLocked);
loadOptions.getBlobManagementOptions().setTemporaryFilesAllowed(true);
loadOptions.getBlobManagementOptions().setMaxBlobsBytesInMemory(0L);

Presentation pres = new Presentation("veryLargePresentation.pptx", loadOptions);
try {
    // Большая презентация загружена и может быть использована, но потребление памяти остается низким.
    // вносит изменения в презентацию.
    pres.getSlides().get_Item(0).setName("Очень большая презентация");

    // Презентация будет сохранена в другой файл. Потребление памяти остается низким во время операции
    pres.save("veryLargePresentation-copy.pptx", SaveFormat.Pptx);
} finally {
    if(pres != null) pres.dispose();
}

Загрузка презентации

Aspose.Slides предоставляет IResourceLoadingCallback с единственным методом, который позволяет вам управлять внешними ресурсами. ЭтотJava код показывает, как использовать интерфейс IResourceLoadingCallback:

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

Presentation pres = new Presentation("presentation.pptx", opts);
class ImageLoadingHandler implements IResourceLoadingCallback 
{
    public int resourceLoading(IResourceLoadingArgs args) 
    {
        if (args.getOriginalUri().endsWith(".jpg")) 
        {
            try // загружает заменяющее изображение
            {
                byte[] imageBytes = Files.readAllBytes(new File("aspose-logo.jpg").toPath());
                args.setData(imageBytes);
                return ResourceLoadingAction.UserProvided;
            } catch (RuntimeException ex) {
                return ResourceLoadingAction.Skip;
            }  catch (IOException ex) {
                ex.printStackTrace();
            }
        } else if (args.getOriginalUri().endsWith(".png")) {
            // устанавливает заменяющий URL
            args.setUri("http://www.google.com/images/logos/ps_logo2.png");
            return ResourceLoadingAction.Default;
        }
        // пропускает все другие изображения
        return ResourceLoadingAction.Skip;
    }
}

Загрузка презентации без встроенных бинарных объектов

Презентация PowerPoint может содержать следующие типы встроенных бинарных объектов:

Используя свойство ILoadOptions.DeleteEmbeddedBinaryObjects, вы можете загрузить презентацию без каких-либо встроенных бинарных объектов.

Это свойство может быть полезно для удаления потенциально вредоносного бинарного содержимого.

Код демонстрирует, как загрузить и сохранить презентацию без вредоносного содержимого:

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

Presentation pres = new Presentation("malware.ppt", loadOptions);
try {
    pres.save("clean.ppt", SaveFormat.Ppt);
} finally {
    if (pres != null) pres.dispose();
}

Открытие и сохранение презентации

Шаги для открытия и сохранения презентации:

  1. Создайте экземпляр класса Presentation и передайте файл, который хотите открыть.
  2. Сохраните презентацию.
// Создает объект Presentation, представляющий файл PPT
Presentation pres = new Presentation();
try {
    // ...выполните некоторые действия здесь...
    
    // Сохраняет вашу презентацию в файл
    pres.save("demoPass.pptx", com.aspose.slides.SaveFormat.Pptx);
} finally {
    if(pres != null) pres.dispose();
}