在 .NET 中将 PowerPoint 幻灯片转换为 PNG

概述

本文解释了如何使用 C# 将 PowerPoint 演示文稿转换为 PNG 格式。内容包括以下主题。

在 .NET 中将 PowerPoint 转换为 PNG

有关将 PowerPoint 转换为 PNG 的 C# 示例代码,请参见下面的章节,即 将 PowerPoint 转换为 PNG。代码可以在 Presentation 对象中加载 PPT、PPTX、ODP 等多种格式,然后将幻灯片缩略图保存为 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 等格式,然后将演示文稿中的每张幻灯片转换为 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 文件,可以设置 desiredXdesiredY 的值,以决定生成的缩略图尺寸。

以下 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 文件,可以为 imageSize 传入期望的 widthheight 参数。

以下代码展示了在指定图像大小的情况下将 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 图像。

服务器上是否支持并行转换?

可以,但请 不要在多个线程之间共享 同一个 Presentation 实例。每个线程或进程应使用独立的实例。

导出为 PNG 时试用版有哪些限制?

评估模式会在输出图像上添加水印,并在授权前执行 其他限制