Открыть презентацию в C#

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

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

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

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

// Создание экземпляра класса Presentation и передача пути к файлу в его конструктор
Presentation pres = new Presentation("OpenPresentation.pptx");

// Выводит общее количество слайдов в презентации
System.Console.WriteLine(pres.Slides.Count.ToString());

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

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

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

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

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

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

const string pathToVeryLargePresentationFile = "veryLargePresentation.pptx";

LoadOptions loadOptions = new LoadOptions
{
    BlobManagementOptions = {
        // Давайте выберем поведение KeepLocked - "veryLargePresentation.pptx" будет заблокирован на
        // время существования экземпляра Presentation, но нам не нужно загружать его в память или копировать в
        // временный файл
        PresentationLockingBehavior = PresentationLockingBehavior.KeepLocked,
    }
};

using (Presentation pres = new Presentation(pathToVeryLargePresentationFile, loadOptions))
{
    // Большая презентация загружена и может быть использована, но потребление памяти все еще низкое.

    // Внесение изменений в презентацию.
    pres.Slides[0].Name = "Очень большая презентация";

    // Презентация будет сохранена в другой файл. Потребление памяти остается низким во время операции
    pres.Save("veryLargePresentation-copy.pptx", SaveFormat.Pptx);

    // Нельзя это сделать! Будет выброшено исключение IO, так как файл заблокирован, пока объекты pres не будут
    // освобождены
    File.Delete(pathToVeryLargePresentationFile);
}

// Здесь можно сделать это, исходный файл не заблокирован объектом pres
File.Delete(pathToVeryLargePresentationFile);

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

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

LoadOptions opts = new LoadOptions();
opts.ResourceLoadingCallback = new ImageLoadingHandler();
Presentation presentation = new Presentation("presentation.pptx", opts);
public class ImageLoadingHandler : IResourceLoadingCallback
{
    public ResourceLoadingAction ResourceLoading(IResourceLoadingArgs args)
    {
        if (args.OriginalUri.EndsWith(".jpg"))
        {
            try // Загружает заменяющее изображение
            {
                byte[] imageBytes = File.ReadAllBytes("c:\\aspose-logo.jpg");
                args.SetData(imageBytes);
                return ResourceLoadingAction.UserProvided;
            }
            catch (Exception)
            {
                return ResourceLoadingAction.Skip;
            }
        }
        else if (args.OriginalUri.EndsWith(".png"))
        {
            // Устанавливает заменяющий URL
            args.Uri = "http://www.google.com/images/logos/ps_logo2.png";
            return ResourceLoadingAction.Default;
        }

        // Пропускает все остальные изображения
        return ResourceLoadingAction.Skip;
    }
}

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

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

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

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

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

LoadOptions loadOptions = new LoadOptions()
{
	DeleteEmbeddedBinaryObjects = true
}

using (var pres = new Presentation("malware.ppt", loadOptions))
{
    pres.Save("clean.ppt", SaveFormat.Ppt);
}

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

Этапы: Открыть и сохранить презентацию в C#

  1. Создайте экземпляр класса Presentation и передайте файл, который вы хотите открыть.
  2. Сохраните презентацию.
// Загружает любую поддерживаемую презентацию, например ppt, pptx, odp
Presentation presentation = new Presentation("Sample.odp");

presentation.Save("OutputPresenation.pptx", SaveFormat.Pptx);