将幻灯片渲染为 SVG 图像

SVG 格式

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

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

当您需要时,可能希望使用 SVG 文件

  • 超大尺寸打印您的演示文稿。SVG 图像可以扩展到任意分辨率或级别。您可以根据需要多次调整 SVG 图像大小,而不会降低质量。
  • 不同媒介或平台中使用幻灯片中的图表和图形。大多数阅读器都能解释 SVG 文件。
  • 使用尽可能小的图像尺寸。SVG 文件通常比其他格式的高分辨率等价文件更小,尤其是基于位图的格式(JPEG 或 PNG)。

将幻灯片渲染为 SVG 图像

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

  1. 创建 Presentation 类的实例。
  2. 遍历演示文稿中的所有幻灯片。
  3. 使用 FileOutputStream 将每张幻灯片写入各自的 SVG 文件。

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

var pres = new aspose.slides.Presentation("pres.pptx");
try {
    for (var index = 0; index < pres.getSlides().size(); index++) {
        var slide = pres.getSlides().get_Item(index);
        var fileStream = java.newInstanceSync("java.io.FileOutputStream", ("slide-" + index) + ".svg");
        try {
            slide.writeAsSvg(fileStream);
        } finally {
            fileStream.close();
        }
    }
} catch (e) {console.log(e);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

常见问题

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

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

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

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

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

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