Преобразование слайдов PowerPoint в PNG в .NET

Обзор

В этой статье объясняется, как преобразовать презентацию PowerPoint в формат PNG с помощью C#. Она охватывает следующие темы.

PowerPoint в PNG в .NET

Для примера кода на C# по преобразованию PowerPoint в PNG смотрите раздел ниже, а именно Преобразовать PowerPoint в PNG. Код может загружать различные форматы, такие как PPT, PPTX и ODP, в объект Presentation, а затем сохранять миниатюру слайда в формате PNG. Другие преобразования PowerPoint в изображения, аналогичные JPG, BMP, TIFF и SVG, рассматриваются в следующих статьях.

О преобразовании PowerPoint в PNG

Формат PNG (Portable Network Graphics) не так популярен, как JPEG (Joint Photographic Experts Group), но все равно очень популярен.

Сценарий использования: Когда у вас сложное изображение и размер не является проблемой, PNG — лучший формат изображения по сравнению с JPEG.

Преобразовать PowerPoint в PNG

  1. Создайте экземпляр класса Presentation.
  2. Получите объект слайда из коллекции Presentation.Slides под интерфейсом ISlide.
  3. Вызовите метод ISlide.GetImage для получения миниатюры каждого слайда.
  4. Используйте метод IPresentation.Save(String, SaveFormat, ISaveOptions для сохранения миниатюры слайда в формате PNG.

Этот код на C# показывает, как преобразовать презентацию PowerPoint в PNG. Объект Presentation может загружать PPT, PPTX, ODP и др., после чего каждый слайд в объекте Presentation преобразуется в формат PNG или другие форматы изображений.

using (Presentation pres = new Presentation("pres.pptx"))
{
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (IImage image = slide.GetImage())
        {
            image.Save($"slide_{index}.png", ImageFormat.Png);
        }
    }
}

Преобразовать PowerPoint в PNG с пользовательскими размерами

Если вы хотите получить файлы PNG определённого масштаба, вы можете установить значения desiredX и desiredY, которые определяют размеры получаемой миниатюры.

Этот код на C# демонстрирует описанную операцию:

using (Presentation pres = new Presentation("pres.pptx"))
{
    float scaleX = 2f;
    float scaleY = 2f;
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (IImage image = slide.GetImage(scaleX, scaleY))
        {
            image.Save($"slide_{index}.png", ImageFormat.Png);
        }
    }
}

Преобразовать PowerPoint в PNG с пользовательским размером

Если вы хотите получить файлы PNG определённого размера, вы можете передать желаемые аргументы width и height для imageSize.

Этот код показывает, как преобразовать PowerPoint в PNG, указывая размер изображений:

using (Presentation pres = new Presentation("pres.pptx"))
{
    Size size = new Size(960, 720);
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (IImage image = slide.GetImage(size))
        {
            image.Save($"slide_{index}.png", ImageFormat.Png);
        }
    }
}

Вопросы и ответы

Как экспортировать только конкретную форму (например, диаграмму или изображение), а не весь слайд?

Aspose.Slides поддерживает создание миниатюр для отдельных фигур; вы можете отобразить форму в PNG‑изображение.

Поддерживается ли параллельное преобразование на сервере?

Да, но не делитесь одной экземпляром презентации между потоками. Используйте отдельный экземпляр для каждого потока или процесса.

Каковы ограничения пробной версии при экспорте в PNG?

Режим оценки добавляет водяной знак к выходным изображениям и применяет прочие ограничения, пока не будет применена лицензия.