在 .NET 中将演示文稿幻灯片呈现为 SVG 图像

概述

本文说明如何使用 C# 将 PowerPoint 演示文稿转换为 SVG 格式。它涵盖以下主题。

格式: PowerPoint

格式: PPT

格式: PPTX

格式: ODP

格式: 幻灯片

其他本篇文章涵盖的主题。

SVG 格式

SVG——可缩放矢量图形(Scalable Vector Graphics)的缩写——是一种用于渲染二维图像的标准图形类型或格式。SVG 将图像以向量形式存储在 XML 中,并包含定义其行为或外观的细节。

SVG 是为数不多的在可伸缩性、交互性、性能、可访问性、可编程性等方面都符合极高标准的图像格式之一。基于这些原因,它在 Web 开发中被广泛使用。

您可能在以下情况下想要使用 SVG 文件:

  • 超大尺寸 打印演示文稿。 SVG 图像可以任意分辨率或尺度放大。您可以根据需要多次调整 SVG 图像大小而不会损失质量。
  • 不同介质或平台 中使用幻灯片中的图表和图形。 大多数阅读器都能够解析 SVG 文件。
  • 使用 尽可能最小的图像尺寸 与基于位图的格式(JPEG 或 PNG)相比,SVG 文件通常更小,尤其是在高分辨率情况下。

将幻灯片呈现为 SVG 图像

Aspose.Slides for .NET 允许您将演示文稿中的幻灯片导出为 SVG 图像。按照以下步骤生成 SVG 图像:

步骤:C# 中的 PowerPoint 到 SVG 转换

下面的示例代码演示了使用 .NET 进行这些转换的方式。

代码步骤:

  1. 创建一个 Presentation 类的实例。
    • .ppt 扩展名用于在 Presentation 类中加载 PPT 文件。
    • .pptx 扩展名用于在 Presentation 类中加载 PPTX 文件。
    • .odp 扩展名用于在 Presentation 类中加载 ODP 文件。
    • .pps 扩展名用于在 Presentation 类中加载 PPS 文件。
  2. 遍历演示文稿中的所有幻灯片。
  3. 通过 FileStream 将每个幻灯片写入各自的 SVG 文件。

下面的 C# 示例代码展示了如何使用 Aspose.Slides 将 PowerPoint 转换为 SVG:

// Presentation 对象可以加载 PowerPoint 格式,如 PPT、PPTX、ODP 等。
using (Presentation pres = new Presentation("pres.pptx"))
{
    for (var index = 0; index < pres.Slides.Count; index++)
    {
        ISlide slide = pres.Slides[index];

        using (FileStream fileStream = new FileStream($"slide-{index}.svg", FileMode.Create, FileAccess.Write))
        {
            slide.WriteAsSvg(fileStream);   
        }
    }
}

常见问题

为什么生成的 SVG 在不同浏览器中可能表现不同?

不同浏览器引擎对特定 SVG 功能的实现各不相同。SVGOptions 参数有助于平滑这些不兼容之处。

是否可以将不仅是幻灯片,还包括单个形状导出为 SVG?

可以。任何形状都可以另存为单独的 SVG,这对于图标、示意图以及复用图形非常方便。

是否可以将多张幻灯片合并为一个 SVG(条带/文档)?

标准情形是一张幻灯片对应一个 SVG。将多张幻灯片合并为同一 SVG 画布是需要在应用层进行的后处理步骤。

另见

本文还覆盖以下主题。代码与上文相同。

格式: PowerPoint

格式: PPT

格式: PPTX

格式: ODP