Отображение слайдов презентации в виде SVG‑изображений на C++

SVG-формат

SVG — это аббревиатура от Scalable Vector Graphics — это стандартный тип графики или формат, используемый для отображения двумерных изображений. SVG хранит изображения как векторы в XML с деталями, определяющими их поведение или внешний вид.

SVG — один из немногих форматов изображений, отвечающих очень высоким требованиям в следующих аспектах: масштабируемость, интерактивность, производительность, доступность, программируемость и другие. По этим причинам его часто используют в веб‑разработке.

Вы можете захотеть использовать SVG‑файлы, когда нужно

  • распечатать вашу презентацию в очень большом формате. SVG‑изображения могут масштабироваться до любой разрешения или уровня. Вы можете изменять размер SVG‑изображений столько раз, сколько потребуется, без потери качества.
  • использовать диаграммы и графики из ваших слайдов в разных средах или платформах. Большинство программ могут интерпретировать SVG‑файлы.
  • использовать самый маленький возможный размер изображений. SVG‑файлы обычно меньше, чем их высокоразрешённые аналоги в других форматах, особенно в форматах, основанных на растровой графике (JPEG или PNG).

Экспортировать слайд как SVG‑изображение

Aspose.Slides для C++ позволяет экспортировать слайды из ваших презентаций в виде SVG‑изображений. Выполните следующие шаги, чтобы создать SVG‑изображения:

  1. Создайте экземпляр класса Presentation.
  2. Пройдите по всем слайдам в презентации.
  3. Запишите каждый слайд в отдельный SVG‑файл через FileStream.

Этот пример кода на C++ показывает, как преобразовать PPT в SVG с помощью Aspose.Slides:

auto pres = System::MakeObject<Presentation>(u"pres.pptx");
        
for (int32_t index = 0; index < pres->get_Slides()->get_Count(); index++)
{
    auto fileName = String::Format(u"slide-{0}.svg", index);
    auto fileStream = System::MakeObject<FileStream>(fileName, FileMode::Create, FileAccess::Write);

    auto slide = pres->get_Slides()->idx_get(index);
    slide->WriteAsSvg(fileStream);
}

FAQ

Почему полученный SVG может выглядеть по‑разному в разных браузерах?
Поддержка конкретных функций SVG реализуется по‑разному движками браузеров. Параметры SVGOptions помогают сгладить несовместимости.

Можно ли экспортировать не только слайды, но и отдельные формы в SVG?
Да. Любую форму можно сохранить как отдельный SVG, что удобно для иконок, пиктограмм и повторного использования графики.

Можно ли объединить несколько слайдов в один SVG (полоска/документ)?
Стандартный сценарий — один слайд → один SVG. Объединение нескольких слайдов в один SVG‑канвас — это пост‑обработка, выполняемая на уровне приложения.